Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Refactor: use local schemas.json file instead of NPM package#133

Open
anaxite wants to merge 8 commits intodoc-detective:mainfrom
anaxite:schema-rework
Open

Refactor: use local schemas.json file instead of NPM package#133
anaxite wants to merge 8 commits intodoc-detective:mainfrom
anaxite:schema-rework

Conversation

@anaxite
Copy link
Copy Markdown
Contributor

@anaxite anaxite commented Nov 24, 2025

Description

This pull request changes the way the documentation interacts with common schemas. Rather than reading them from the doc-detective-common package, the tooling now reads the schemas from a local src/schemas/schemas.json file.

To support this new workflow, the GitHub Actions workflow that used to update doc-detective-common now only updates the schema file and package.json.

Why we do this: some scripts that were kept around for doc-detective-common were preventing Docusaurus from using Rspack, which will be mandatory in upcoming Docusaurus versions.

Type of contribution

  • Quick change (typo, broken link, small wording change)
  • Standard change (new content, examples, or improvements)
  • Substantial change (new feature docs, major restructuring, tutorials)

Changes made

  • Modify the buildSchemaReferences script to grab schemas data from a local file rather than importing from the NPM package. Use a web link as fallback that we hopefully don't need.
  • Modify all relevant MDX and JavaScript files to grab schemas data from a local file rather than importing from the NPM package.
  • Remove doc-detective-common from the dependencies.
  • Remove webpack-browserify.js script and its entry in the Docusaurus config file.

Testing performed

  • Previewed changes locally (npm run start)
  • Tested all code examples
  • Verified all links work
  • Ran build successfully (npm run build)
  • Ran style checks with Vale (if applicable)
  • Added/updated Doc Detective tests (if applicable)

Checklist

  • I have signed the Contributor License Agreement
  • My changes follow the contribution guidelines
  • I have used the appropriate content template (if applicable)
  • All new content files use .mdx extension
  • Front matter is included on all new pages
  • Links use absolute paths (e.g., /docs/page not ../page)
  • Code examples are complete and tested
  • I have spell-checked my changes
  • I have reviewed my own changes for errors

Additional notes

@hawkeyexl I could use your eyes. Do the updated scripts and actions look good to you? It's a lot of moving parts for this change, and the GitHub action is hard for me to test.

I still have a few packages to clean up before this PR is fully ready.


For reviewers:

  • See Review Process for guidelines
  • Focus on technical accuracy and user value
  • Don't block on minor style issues—automation handles those

Summary by CodeRabbit

  • New Features

    • Added new element-finding criteria: elementId, elementTestId, elementClass, elementAttribute, and elementAria for more flexible element selection.
    • Added timeout and waitUntil configuration options for page navigation.
    • Added required field validation for response bodies.
  • Refactor

    • Decoupled external schema dependencies; schemas now sourced locally.
    • Removed browser polyfill dependencies to improve build performance.

✏️ Tip: You can customize this high-level summary in your review settings.

…urce

Either use a local JSON file, or retrieve it directly from GitHub
- Add Axios library
- Rename build-schemas target
Instead of retrieving `schemas.json` from a package, retrieve it locally
We don't need doc-detective-common libraries anymore. Instead, bump the schema and package.json versions.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 24, 2025

Walkthrough

This PR migrates schema sources from the npm package doc-detective-common to a local JSON file at @site/src/schemas/schemas.json. The GitHub Actions workflow is updated to fetch schemas.json directly and commit it; build scripts now dynamically retrieve schemas; all documentation imports are redirected to the local file; browser polyfills and webpack browserify plugin are removed; and schema reference documentation is expanded with new element-matching fields.

Changes

Cohort / File(s) Summary
Workflow update
.github/workflows/update-common.yml
Renamed workflow to focus on schema version updates. Simplified version resolution to handle 'latest' tags and derive clean numeric versions. Replaced npm package installation with direct schema file fetches via URL. Integrated git-auto-commit-action for schemas.json commits and removed manual Git logic. Updated conditional flows to depend on commit detection rather than a has_changes flag.
Build script enhancement
.scripts/buildSchemaReferences.js
Introduced new getSchemas() async function to read schemas from local ../src/schemas/schemas.json or fetch from GitHub URL via axios. Added error handling and replaced direct doc-detective-common schema usage with dynamic retrieval. Added axios import.
Schema import migration (action docs)
docs/get-started/actions/checkLink.mdx, click.mdx, dragAndDrop.mdx, find.mdx, goTo.mdx, httpRequest.mdx, loadCookie.mdx, loadVariables.mdx, record.mdx, runCode.mdx, runShell.mdx, saveCookie.mdx, screenshot.mdx, stopRecord.mdx, type.mdx, wait.mdx, AGENTS.md
Changed all schema imports from named export import { schemas } from "doc-detective-common" to default import import schemas from "@site/src/schemas/schemas.json". All usage patterns remain consistent.
Schema reference documentation
docs/references/schemas/click-element-detailed.md, crop-by-element-detailed.md, find-element-detailed.md, type-keys-detailed.md
Expanded element-finding fields to include elementId, elementTestId, elementClass, elementAttribute, and elementAria. Updated field descriptions to clarify multi-criteria matching where element must match all specified criteria. Examples updated with new fields.
Schema reference updates
docs/references/schemas/go-to-url-detailed.md, http-request-detailed.md, response.md
Added timeout and waitUntil fields to Go to URL schema. Simplified HTTP request response example. Added required array field to response schema.
Source code imports
src/components/Builder/index.js, src/pages/app.js
Changed schema imports from named export to default import from @site/src/schemas/schemas.json, mirroring documentation changes.
Dependency and configuration updates
package.json
Updated build-schemas script to run updated .scripts/buildSchemaReferences.js. Removed browser polyfills (buffer, crypto-browserify, https-browserify, os-browserify, path-browserify, process, stream-browserify, stream-http, vm-browserify) and doc-detective-common from dependencies. Added axios (^1.13.2) as devDependency.
Plugin removal
src/plugins/webpack-browserify.js
Deleted entire webpack-browserify plugin that previously provided polyfills for Node.js modules (path, fs, http, https, os, crypto, buffer, stream, vm) and provisioned Buffer and process globals.
Configuration cleanup
docusaurus.config.ts
Removed local webpack-browserify plugin from plugins array; retained only environment-driven conditional plugins (INKEEP, POSTHOG).

Sequence Diagram

sequenceDiagram
    participant GH as GitHub Actions
    participant Repo as Repository
    participant DC as doc-detective/common
    participant Build as Build Script
    participant Docs as Documentation

    rect rgb(220, 240, 255)
    Note over GH,DC: Old Flow (Deprecated)
    GH->>Repo: checkout
    GH->>Repo: npm install doc-detective-common
    Build->>Repo: read schemas from package
    end

    rect rgb(220, 255, 220)
    Note over GH,Docs: New Flow (Current PR)
    GH->>DC: fetch latest tag
    GH->>DC: resolve version_clean
    GH->>DC: fetch schemas.json from version URL
    GH->>Repo: commit schemas.json
    Build->>Repo: read local schemas.json
    Build->>Build: (fallback: fetch from URL if missing)
    Docs->>Repo: import from `@site/src/schemas/schemas.json`
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

  • Workflow logic changes: The version resolution and git-auto-commit integration introduce moderate complexity requiring careful validation of conditional flows and output variables.
  • Build script async logic: The dynamic schema fetching with fallback handling needs verification of error cases and axios integration.
  • Homogeneous import changes: While 16+ MDX and source files have import changes, these follow an identical, straightforward pattern (named to default import swap), reducing per-file review burden.
  • Schema documentation expansions: The new element-matching fields require careful review to ensure schema consistency across multiple reference docs and that multi-criteria matching semantics are clearly documented.
  • Dependency removal: Removal of webpack-browserify plugin and polyfills should be validated against build output and supported browsers.

Areas requiring extra attention:

  • .github/workflows/update-common.yml — Verify conditional logic for detecting schema changes and ensure version variables are correctly propagated through steps
  • .scripts/buildSchemaReferences.js — Test axios fallback behavior and error handling when schemas.json is missing locally
  • docusaurus.config.ts — Confirm webpack-browserify removal does not break builds on target environments
  • Schema documentation (find-element-detailed.md, click-element-detailed.md) — Ensure multi-criteria matching rules are unambiguous and consistent across all expanded element-finding fields

Possibly related PRs

  • PR #92 — Updates schema references and imports in documentation pages; this PR complements by changing the underlying schema source pipeline and build process.
  • PR #131 — Modifies .github/workflows/update-common.yml workflow; overlaps directly with this PR's workflow refactoring.
  • PR #89 — Introduces dragAndDrop action documentation; this PR updates its schema import mechanism.

Suggested reviewers

  • hawkeyexl

Poem

🐰 Schemas hop from npm to local shore,
Workflows fetch what they need once more,
With axios and JSON, no polyfills to carry,
Browser compat? No need to worry!
Local schemas bloom, doc-detective's schway! 🌿

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main refactoring: switching from using schemas via an NPM package to using a local file.
Description check ✅ Passed The description covers the purpose, changes made, testing performed, and checklist items, following the template structure with most required sections completed.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@anaxite anaxite marked this pull request as ready for review November 24, 2025 22:48
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
src/pages/app.js (1)

3-10: Remove unused schemas import

schemas is imported from @site/src/schemas/schemas.json but never used in this file; Form just renders <Builder />.

You can simplify this file by dropping the unused import:

-import schemas from "@site/src/schemas/schemas.json";
docs/get-started/actions/checkLink.mdx (1)

6-6: Fix YAML frontmatter syntax error.

Line 6 has a typo: Grand_parent should be grand_parent (lowercase), and the trailing comma is invalid YAML syntax.

Apply this diff to fix:

- grand_parent: Tests,
+ grand_parent: Tests
docs/get-started/actions/httpRequest.mdx (1)

67-67: Address Vale linting warning: replace "Simple" with neutral alternative.

The Vale style checker flags "Simple" as potentially condescending. Replace with a neutral descriptor like "Basic" to resolve the linting failure.

Apply this diff:

- ### Simple GET request (object format)
+ ### Basic GET request (object format)
🧹 Nitpick comments (2)
.scripts/buildSchemaReferences.js (1)

29-56: Consider adding timeout and making the URL configurable.

The getSchemas() function provides a good fallback mechanism. However, the hardcoded GitHub URL pointing to the main branch could be fragile if the repository structure changes, and the axios request lacks a timeout which could hang the build indefinitely.

Consider these improvements:

  1. Add a timeout to the axios request:
     try {
-      const response = await axios.get("https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/src/schemas/schemas.json");
+      const response = await axios.get(
+        "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/src/schemas/schemas.json",
+        { timeout: 10000 }
+      );
       schemas = response.data;
  1. Make the URL configurable via environment variable:
+  const SCHEMA_URL = process.env.SCHEMA_URL || "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/src/schemas/schemas.json";
   try {
-    const response = await axios.get("https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/src/schemas/schemas.json");
+    const response = await axios.get(SCHEMA_URL, { timeout: 10000 });
.github/workflows/update-common.yml (1)

45-65: Consider combining the two commits into one.

The workflow now creates two separate commits (one for schemas.json, another for package.json). While this separation provides granular tracking, it may clutter the commit history unnecessarily.

If you prefer a cleaner history, you could combine both file changes into a single commit:

     - name: Fetch versioned `schemas.json` from doc-detective/common
       run: |
         curl -f -L --max-time 30 -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json
         # Validate JSON
         jq empty src/schemas/schemas.json
+        
+        # Update package.json version in same step
+        jq --arg version "${{ steps.version.outputs.version_clean }}" '.version = $version' package.json > package.tmp.json && mv package.tmp.json package.json
     
-    - name: Commit schema changes
-      id: commit
+    - name: Commit schema and package version changes
+      id: commit-all
       uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 #v7.0.0
       with:
-        commit_message: "chore: update schemas.json to version ${{ steps.version.outputs.version }}"
-        file_pattern: "src/schemas/schemas.json"
-
-    - name: Bump or sync package version
-      id: patch
-      if: steps.commit.outputs.changes_detected == 'true'
-      run: |
-        # Update package.json version field
-        jq --arg version "${{ steps.version.outputs.version_clean }}" '.version = $version' package.json > package.tmp.json && mv package.tmp.json package.json
-
-    - name: Commit package version changes
-      id: commit-package
-      if: steps.commit.outputs.changes_detected == 'true'
-      uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 #v7.0.0
-      with:
-        commit_message: "chore: bump package version to match doc-detective-common"
-        file_pattern: "package.json"
+        commit_message: "chore: update schemas and package version to ${{ steps.version.outputs.version }}"
+        file_pattern: "src/schemas/schemas.json package.json"

Then update the subsequent conditional steps to reference commit-all instead of commit-package.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1cbe1f0 and 4cd976b.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (31)
  • .github/workflows/update-common.yml (3 hunks)
  • .scripts/buildSchemaReferences.js (3 hunks)
  • AGENTS.md (1 hunks)
  • docs/get-started/actions/checkLink.mdx (1 hunks)
  • docs/get-started/actions/click.mdx (1 hunks)
  • docs/get-started/actions/dragAndDrop.mdx (1 hunks)
  • docs/get-started/actions/find.mdx (1 hunks)
  • docs/get-started/actions/goTo.mdx (1 hunks)
  • docs/get-started/actions/httpRequest.mdx (1 hunks)
  • docs/get-started/actions/loadCookie.mdx (1 hunks)
  • docs/get-started/actions/loadVariables.mdx (1 hunks)
  • docs/get-started/actions/record.mdx (1 hunks)
  • docs/get-started/actions/runCode.mdx (1 hunks)
  • docs/get-started/actions/runShell.mdx (1 hunks)
  • docs/get-started/actions/saveCookie.mdx (1 hunks)
  • docs/get-started/actions/screenshot.mdx (1 hunks)
  • docs/get-started/actions/stopRecord.mdx (1 hunks)
  • docs/get-started/actions/type.mdx (1 hunks)
  • docs/get-started/actions/wait.mdx (1 hunks)
  • docs/references/schemas/click-element-detailed.md (1 hunks)
  • docs/references/schemas/crop-by-element-detailed.md (2 hunks)
  • docs/references/schemas/find-element-detailed.md (2 hunks)
  • docs/references/schemas/go-to-url-detailed.md (1 hunks)
  • docs/references/schemas/http-request-detailed.md (1 hunks)
  • docs/references/schemas/response.md (1 hunks)
  • docs/references/schemas/type-keys-detailed.md (1 hunks)
  • docusaurus.config.ts (1 hunks)
  • package.json (2 hunks)
  • src/components/Builder/index.js (1 hunks)
  • src/pages/app.js (1 hunks)
  • src/plugins/webpack-browserify.js (0 hunks)
💤 Files with no reviewable changes (1)
  • src/plugins/webpack-browserify.js
🧰 Additional context used
🧬 Code graph analysis (9)
docs/get-started/actions/record.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/click.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/screenshot.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/wait.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
package.json (1)
.scripts/buildSchemaReferencesV4.js (4)
  • main (407-463)
  • generateSchemaMarkdown (126-200)
  • generateExampleFromSchema (203-255)
  • extractObjectSchemas (52-123)
.github/workflows/update-common.yml (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/dragAndDrop.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/httpRequest.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
docs/get-started/actions/loadCookie.mdx (1)
.scripts/buildSchemaReferencesV4.js (1)
  • main (407-463)
🪛 GitHub Actions: Vale Style Checks
docs/get-started/actions/runCode.mdx

[error] 73-73: [alex.Condescending] Using 'simple' may come across as condescending.

docs/references/schemas/response.md

[error] 16-16: [Google.Latin] Use 'for example' instead of 'e.g.'.


[error] 16-16: [Google.Latin] Use 'for example' instead of 'e.g.'.

docs/get-started/actions/httpRequest.mdx

[error] 67-67: [alex.Condescending] Using 'Simple' may come across as condescending.

🪛 GitHub Check: vale
docs/references/schemas/response.md

[failure] 16-16:
[vale] reported by reviewdog 🐶
[Google.Latin] Use 'for example' instead of 'e.g.'.

Raw Output:
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/references/schemas/response.md", "range": {"start": {"line": 16, "column": 195}}}, "severity": "ERROR"}


[failure] 16-16:
[vale] reported by reviewdog 🐶
[Google.Latin] Use 'for example' instead of 'e.g.'.

Raw Output:
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/references/schemas/response.md", "range": {"start": {"line": 16, "column": 136}}}, "severity": "ERROR"}

🪛 LanguageTool
docs/references/schemas/type-keys-detailed.md

[grammar] ~18-~18: Use a hyphen to join words.
Context: ...ype into. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

docs/references/schemas/find-element-detailed.md

[grammar] ~14-~14: Use a hyphen to join words.
Context: ... to find. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)


[grammar] ~15-~15: Use a hyphen to join words.
Context: ... to find. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

docs/references/schemas/click-element-detailed.md

[grammar] ~16-~16: Use a hyphen to join words.
Context: ...to click. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)


[grammar] ~17-~17: Use a hyphen to join words.
Context: ...to click. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
docs/references/schemas/type-keys-detailed.md

19-19: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


19-19: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


20-20: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


20-20: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


22-22: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


22-22: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


23-23: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


23-23: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


25-25: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


26-26: Table column count
Expected: 4; Actual: 2; Too few cells, row will be missing data

(MD056, table-column-count)

docs/references/schemas/crop-by-element-detailed.md

16-16: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


16-16: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


17-17: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


17-17: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


18-18: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


18-18: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


19-19: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


19-19: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


20-20: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


20-20: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

docs/references/schemas/find-element-detailed.md

14-14: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


14-14: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


15-15: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


15-15: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


16-16: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


16-16: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


17-17: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


17-17: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


18-18: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


18-18: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


19-19: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


19-19: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


20-20: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


20-20: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

🔇 Additional comments (27)
docs/references/schemas/response.md (1)

16-16: Schema documentation update looks correct.

The new required field is properly documented and the example is updated consistently to include the empty array default. The schema expansion aligns with the broader documentation updates across related schema files.

Also applies to: 23-24

docs/references/schemas/http-request-detailed.md (1)

40-40: Response example update is consistent with schema.

The example correctly reflects the Response schema's empty object default state, maintaining consistency across the documentation.

docs/references/schemas/go-to-url-detailed.md (1)

16-17: New schema fields properly documented and exemplified.

The additions of timeout and waitUntil fields are well-documented with clear descriptions and appropriate defaults. The example is updated consistently to include these new options.

Also applies to: 24-26

docs/references/schemas/click-element-detailed.md (1)

18-22: New element-finding criteria properly documented.

The expansion to include elementId, elementTestId, elementClass, elementAttribute, and elementAria is well-documented with clear descriptions of matching behavior (regex support, presence/absence for attributes, ARIA spec). The example correctly includes all new fields.

Also applies to: 30-34

docs/references/schemas/find-element-detailed.md (1)

16-20: New element-finding criteria expansion aligns with parallel schema changes.

The documentation mirrors the click-element-detailed.md expansion with consistent field descriptions and example updates. The schema expansion is logically structured with proper documentation of regex support, presence/absence semantics, and ARIA name matching.

Also applies to: 32-35

docs/get-started/actions/type.mdx (1)

10-10: Import migration correctly implements schema source change.

The update from doc-detective-common named export to default import from @site/src/schemas/schemas.json is properly implemented. The usage pattern on line 200 (schemas.type_v3) remains compatible with the new import structure.

docs/get-started/actions/wait.mdx (1)

10-10: Import migration correctly aligned with schema source consolidation.

The import successfully migrates from doc-detective-common to the local @site/src/schemas/schemas.json file. The schema reference usage at line 78 (schemas.wait_v3) remains compatible and functional.

docs/get-started/actions/runShell.mdx (1)

10-10: Import migration follows established pattern.

The import successfully transitions from doc-detective-common to local @site/src/schemas/schemas.json, consistent with the migration pattern across other MDX action documentation files. The schema reference usage at line 164 (schemas.runShell_v3) remains compatible.

docs/get-started/actions/click.mdx (1)

10-10: Schemas JSON import looks correct and consistent

Switching to import schemas from "@site/src/schemas/schemas.json"; matches the new repo-wide pattern, and the existing usage schemas.click_v3 remains coherent as long as schemas.json exposes a click_v3 key.

Please confirm that src/schemas/schemas.json contains a click_v3 top-level key so this MDX page continues to render the schema correctly.

AGENTS.md (1)

119-124: Agent instructions now match the new schema source

Updating the MDX example to import schemas from "@site/src/schemas/schemas.json"; keeps contributor guidance aligned with the implementation while preserving the schemas.dragAndDrop_v3 usage.

docs/get-started/actions/goTo.mdx (1)

10-10: Local schemas import is consistent with tooling

The schemas default import from @site/src/schemas/schemas.json matches the new schema handling, and the schemas.goTo_v3 usage aligns with the keys listed in schemasToGenerate in .scripts/buildSchemaReferencesV4.js.

Double-check that goTo_v3 exists in schemas.json so this reference page doesn’t break when schemas are regenerated.

src/components/Builder/index.js (1)

4-4: Builder now sourcing schemas from local JSON

Importing schemas from @site/src/schemas/schemas.json should be a drop‑in replacement for the previous module export, given the existing usage relies on Object.keys(schemas) and schemas[key].title.

After updating schemas.json, it’s worth quickly verifying in the Action Builder UI that the action list populates correctly and that selecting an action still renders the expected form.

docs/get-started/actions/loadCookie.mdx (1)

10-10: Local schemas import aligns with the new schema workflow

Using import schemas from "@site/src/schemas/schemas.json"; here keeps the loadCookie doc in sync with the updated schema source, and schemas.loadCookie_v3 matches the naming convention used elsewhere.

Please confirm that loadCookie_v3 is present in schemas.json so the schema viewer on this page continues to render correctly after schema updates.

docusaurus.config.ts (1)

65-199: Theme config and plugin cleanup verified; no residual Node core imports in browser code

Verification confirms the removal of the webpack-browserify polyfill plugin is safe. A comprehensive scan of source files (src/) and broader import patterns found zero references to Node core modules (path, fs, os, crypto, stream, buffer, util, process, etc.) in browser-targeted code.

The only Node import is require("dotenv").config() in docusaurus.config.ts line 4, which is server-side config initialization—expected and safe.

The themeConfig shape, conditional plugins array, and themes declarations are all valid for Docusaurus v3.

docs/get-started/actions/dragAndDrop.mdx (1)

10-11: Schema import path successfully migrated to local JSON.

The import is now sourced from the local site JSON file, consistent with the PR migration objective.

package.json (1)

20-20: Build script and dependency updates align with migration.

The script path change to buildSchemaReferences.js and addition of axios support the local JSON schema loading strategy. However, verify that the new script exists and functions correctly before merge.

Also applies to: 58-58

docs/get-started/actions/saveCookie.mdx (1)

10-11: Schema import migrated to local JSON file.

docs/get-started/actions/screenshot.mdx (1)

10-11: Schema import migrated to local JSON file.

docs/get-started/actions/checkLink.mdx (1)

12-13: Schema import migrated to local JSON file.

docs/get-started/actions/stopRecord.mdx (1)

10-11: Schema import migrated to local JSON file.

docs/get-started/actions/httpRequest.mdx (1)

10-11: Schema import migrated to local JSON file.

docs/references/schemas/crop-by-element-detailed.md (1)

25-35: Schema additions for element-finding are well-designed.

The new fields (elementId, elementTestId, elementClass, elementAttribute, elementAria) expand element-matching capabilities with clear semantics. Example payload correctly includes the new fields.

.scripts/buildSchemaReferences.js (1)

443-446: LGTM!

The integration of the async getSchemas() function is clean and maintains backward compatibility with the rest of the script.

docs/get-started/actions/find.mdx (1)

10-10: LGTM!

The import change from the doc-detective-common package to the local JSON file is consistent with the PR's migration strategy. The downstream usage remains unchanged.

docs/get-started/actions/loadVariables.mdx (1)

10-10: LGTM!

The import migration is consistent with the other MDX files in this PR.

docs/get-started/actions/record.mdx (1)

10-10: LGTM!

The import change is consistent with the broader schema migration effort.

.github/workflows/update-common.yml (1)

28-39: LGTM!

The version resolution logic correctly handles both explicit versions and 'latest', with proper output of both the raw version and cleaned version for downstream steps.

Comment on lines +41 to +50
- name: Fetch versioned `schemas.json` from doc-detective/common
run: |
npm install doc-detective-common@${{ steps.version.outputs.version }} || {
echo "Failed to install doc-detective-common@${{ steps.version.outputs.version }}"
exit 1
}
npm audit fix
curl -L -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json

- name: Test the installation
run: |
npm test

- name: Commit changes
- name: Commit schema changes
id: commit
run: |
git add package.json package-lock.json
if git diff --staged --quiet; then
echo "No changes to commit"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
git commit -m "chore: bump doc-detective-common version to ${{ steps.version.outputs.version }}"
git push
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 #v7.0.0
with:
commit_message: "chore: update schemas.json to version ${{ steps.version.outputs.version }}"
file_pattern: "src/schemas/schemas.json"
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Nov 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add error handling and validation to the schema download.

The curl command lacks error handling, timeout, and validation of the downloaded schemas.json file. If the download fails or returns invalid content, the workflow will commit a broken or empty file.

Apply this diff to add proper error handling:

     - name: Fetch versioned `schemas.json` from doc-detective/common
       run: |
-        curl -L -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json
+        # Download with error handling and timeout
+        if ! curl -f -L --max-time 30 -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json; then
+          echo "Failed to download schemas.json"
+          exit 1
+        fi
+        
+        # Validate that the downloaded file is valid JSON
+        if ! jq empty src/schemas/schemas.json 2>/dev/null; then
+          echo "Downloaded schemas.json is not valid JSON"
+          exit 1
+        fi
+        
+        echo "Successfully downloaded and validated schemas.json"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Fetch versioned `schemas.json` from doc-detective/common
run: |
npm install doc-detective-common@${{ steps.version.outputs.version }} || {
echo "Failed to install doc-detective-common@${{ steps.version.outputs.version }}"
exit 1
}
npm audit fix
curl -L -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json
- name: Test the installation
run: |
npm test
- name: Commit changes
- name: Commit schema changes
id: commit
run: |
git add package.json package-lock.json
if git diff --staged --quiet; then
echo "No changes to commit"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
git commit -m "chore: bump doc-detective-common version to ${{ steps.version.outputs.version }}"
git push
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 #v7.0.0
with:
commit_message: "chore: update schemas.json to version ${{ steps.version.outputs.version }}"
file_pattern: "src/schemas/schemas.json"
- name: Fetch versioned `schemas.json` from doc-detective/common
run: |
# Download with error handling and timeout
if ! curl -f -L --max-time 30 -o src/schemas/schemas.json https://raw.githubusercontent.com/doc-detective/common/${{ steps.version.outputs.version }}/src/schemas/schemas.json; then
echo "Failed to download schemas.json"
exit 1
fi
# Validate that the downloaded file is valid JSON
if ! jq empty src/schemas/schemas.json 2>/dev/null; then
echo "Downloaded schemas.json is not valid JSON"
exit 1
fi
echo "Successfully downloaded and validated schemas.json"
- name: Commit schema changes
id: commit
uses: stefanzweifel/git-auto-commit-action@28e16e81777b558cc906c8750092100bbb34c5e3 #v7.0.0
with:
commit_message: "chore: update schemas.json to version ${{ steps.version.outputs.version }}"
file_pattern: "src/schemas/schemas.json"
🤖 Prompt for AI Agents
.github/workflows/update-common.yml around lines 41 to 50: the curl step must
fail fast and validate the downloaded JSON before committing so we don't push
broken/empty schemas.json. Replace the plain curl with a safe sequence that
downloads to a temporary file using curl --fail --show-error --location
--max-time (e.g. 30), checks curl exit status, validates that the file is
non-empty and contains valid JSON (use jq -e . or node -e 'JSON.parse(...)' to
test), and only moves it to src/schemas/schemas.json on success; if any check
fails, emit a clear error and exit non-zero so the job stops and the commit step
is skipped (make the commit step conditional on the previous step succeeding).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suggestion seems okay to me.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@anaxite, great! The error handling will help ensure the workflow doesn't commit broken or empty schema files. Feel free to reach out if you need any assistance with the implementation or have questions about the changes. 👍

Comment thread docs/get-started/actions/runCode.mdx
Comment on lines +16 to +17
elementText | string | Optional. Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria. |
selector | string | Optional. Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix grammar: hyphenate "element-finding" in compound adjectives.

LanguageTool flags the use of "element finding" when it should be hyphenated as "element-finding" when used as a compound adjective modifying "fields" (lines 16-17).

Apply this diff to fix the grammar:

-elementText | string | Optional. Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria. | 
+elementText | string | Optional. Display text of the element to click. If combined with other element-finding fields, the element must match all specified criteria. | 
-selector | string | Optional. Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria. | 
+selector | string | Optional. Selector of the element to click. If combined with other element-finding fields, the element must match all specified criteria. | 
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
elementText | string | Optional. Display text of the element to click. If combined with other element finding fields, the element must match all specified criteria. |
selector | string | Optional. Selector of the element to click. If combined with other element finding fields, the element must match all specified criteria. |
elementText | string | Optional. Display text of the element to click. If combined with other element-finding fields, the element must match all specified criteria. |
selector | string | Optional. Selector of the element to click. If combined with other element-finding fields, the element must match all specified criteria. |
🧰 Tools
🪛 LanguageTool

[grammar] ~16-~16: Use a hyphen to join words.
Context: ...to click. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)


[grammar] ~17-~17: Use a hyphen to join words.
Context: ...to click. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In docs/references/schemas/click-element-detailed.md around lines 16 to 17, the
compound adjective "element finding" should be hyphenated as "element-finding";
update both occurrences ("If combined with other element finding fields") to "If
combined with other element-finding fields" so the adjective correctly modifies
"fields" and fixes the grammar.

Comment on lines +16 to +20
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix markdown table formatting to match schema documentation pattern.

The newly added field rows have two formatting issues:

  1. Trailing pipes that violate the table style (should be no trailing pipes)
  2. Missing the 4th column (Default value), causing column count mismatch

Align formatting with existing rows (padding and selector above).

Apply this diff to fix table structure:

- elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. | 
- elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. | 
- elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. | 
- elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. | 
- elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. | 
+ elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
+ elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
+ elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
+ elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
+ elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax.
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes.
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence.
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax.
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

16-16: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


16-16: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


17-17: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


17-17: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


18-18: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


18-18: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


19-19: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


19-19: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


20-20: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


20-20: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

🤖 Prompt for AI Agents
In docs/references/schemas/crop-by-element-detailed.md around lines 16 to 20,
the three newly added table rows have incorrect Markdown table formatting: they
include trailing pipe characters and are missing the 4th column (Default value)
which causes the table column count to mismatch. Fix by removing the trailing
pipe at the end of each row, add a fourth column entry (use an explicit
empty/default value such as an empty cell or "—" to match the existing rows),
and ensure spacing/padding matches the selector row style above so all rows have
four columns and consistent alignment.

Comment on lines +14 to +15
elementText | string | Optional. Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria. |
selector | string | Optional. Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix grammar and markdown table formatting issues.

LanguageTool flags "element finding" which should be hyphenated as "element-finding" (lines 14-15). Additionally, markdownlint reports table formatting issues with trailing pipes and column count mismatches on these lines, suggesting the table structure needs adjustment.

Apply this diff to fix both issues:

-elementText | string | Optional. Display text of the element to find. If combined with other element finding fields, the element must match all specified criteria. | 
+elementText | string | Optional. Display text of the element to find. If combined with other element-finding fields, the element must match all specified criteria. | ``
-selector | string | Optional. Selector of the element to find. If combined with other element finding fields, the element must match all specified criteria. | 
+selector | string | Optional. Selector of the element to find. If combined with other element-finding fields, the element must match all specified criteria. | ``

Note: Ensure the table has a closing pipe | at the end of each row and verify all rows have the same number of columns to resolve markdownlint validation errors.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 LanguageTool

[grammar] ~14-~14: Use a hyphen to join words.
Context: ... to find. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)


[grammar] ~15-~15: Use a hyphen to join words.
Context: ... to find. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)

14-14: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


14-14: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


15-15: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


15-15: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

🤖 Prompt for AI Agents
In docs/references/schemas/find-element-detailed.md around lines 14 to 15, the
phrase "element finding" should be hyphenated to "element-finding" and the
Markdown table rows are missing trailing pipes and may have inconsistent column
counts; update those two rows so each cell count matches the table header and
add a closing pipe '|' at the end of every row, and replace "element finding
fields" with "element-finding fields" in both lines.

:-- | :-- | :-- | :--
headers | object([Response headers](/docs/references/schemas/response-headers)) | Optional. Headers expected in the response, in key/value format. If one or more `responseHeaders` entries aren't present in the response, the step fails. | ``{}``
body | one of:<br/>- object([Response body object](/docs/references/schemas/response-body-object))<br/>- array of unknown<br/>- string | Optional. JSON object expected in the response. If one or more key/value pairs aren't present in the response, the step fails. | ``{}``
required | array of string | Optional. Array of field paths that must exist in the response body. Uses dot notation for nested fields (e.g., 'user.name') and bracket notation for array indices (e.g., 'items[0].id'). Fields must be present but may have any value including null. | ``[]``
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix Vale linting violations: replace "e.g." with "for example".

The Vale style checker flags two instances of "e.g." on this line that should be spelled out as "for example" per the Google style guide being enforced.

Apply this diff to fix the Vale violations:

-required | array of string | Optional. Array of field paths that must exist in the response body. Uses dot notation for nested fields (e.g., 'user.name') and bracket notation for array indices (e.g., 'items[0].id'). Fields must be present but may have any value including null. | ``[]``
+required | array of string | Optional. Array of field paths that must exist in the response body. Uses dot notation for nested fields (for example, 'user.name') and bracket notation for array indices (for example, 'items[0].id'). Fields must be present but may have any value including null. | ``[]``
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
required | array of string | Optional. Array of field paths that must exist in the response body. Uses dot notation for nested fields (e.g., 'user.name') and bracket notation for array indices (e.g., 'items[0].id'). Fields must be present but may have any value including null. | ``[]``
required | array of string | Optional. Array of field paths that must exist in the response body. Uses dot notation for nested fields (for example, 'user.name') and bracket notation for array indices (for example, 'items[0].id'). Fields must be present but may have any value including null. | ``[]``
🧰 Tools
🪛 GitHub Actions: Vale Style Checks

[error] 16-16: [Google.Latin] Use 'for example' instead of 'e.g.'.


[error] 16-16: [Google.Latin] Use 'for example' instead of 'e.g.'.

🪛 GitHub Check: vale

[failure] 16-16:
[vale] reported by reviewdog 🐶
[Google.Latin] Use 'for example' instead of 'e.g.'.

Raw Output:
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/references/schemas/response.md", "range": {"start": {"line": 16, "column": 195}}}, "severity": "ERROR"}


[failure] 16-16:
[vale] reported by reviewdog 🐶
[Google.Latin] Use 'for example' instead of 'e.g.'.

Raw Output:
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/references/schemas/response.md", "range": {"start": {"line": 16, "column": 136}}}, "severity": "ERROR"}

🤖 Prompt for AI Agents
In docs/references/schemas/response.md around line 16, replace the two
occurrences of the abbreviation "e.g." with the spelled-out phrase "for example"
so the sentence reads using "for example" in both places (e.g., change "e.g.,
'user.name'" to "for example, 'user.name'" and "e.g., 'items[0].id'" to "for
example, 'items[0].id'") to satisfy Vale linting and the Google style guide.

Comment on lines +18 to 26
elementText | string | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria. |
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |

## Examples

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the missing default column in table rows.

The newly added element selection fields (lines 18-23, 25) are missing the default value column in the table, causing table formatting issues. Each row should have four columns to match the table header: Field | Type | Description | Default.

Apply this diff to add the missing default column (empty values are appropriate if no default exists):

-elementText | string | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria. | 
-elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. | 
-elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. | 
-elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. | 
-elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. | 
-elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. | 
+elementText | string | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria. |
+elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
+elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
+elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
+elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
+elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
elementText | string | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria. |
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |
## Examples
elementText | string | Optional. Display text of the element to type into. If combined with other element finding fields, the element must match all specified criteria. |
elementId | string | Optional. ID attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementTestId | string | Optional. data-testid attribute of the element to find. Supports exact match or regex pattern using /pattern/ syntax. |
elementClass | one of:<br/>- string<br/>- array of string | Optional. Class or array of classes that the element must have. Each class supports exact match or regex pattern using /pattern/ syntax. Element must have all specified classes. |
elementAttribute | object | Optional. Object of attribute key-value pairs that the element must have. Values can be strings (supporting /pattern/ regex), numbers, or booleans. Boolean true matches attribute presence, false matches absence. |
elementAria | string | Optional. Computed accessible name of the element per ARIA specification. Supports exact match or regex pattern using /pattern/ syntax. |
🧰 Tools
🪛 LanguageTool

[grammar] ~18-~18: Use a hyphen to join words.
Context: ...ype into. If combined with other element finding fields, the element must match a...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)

19-19: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


19-19: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


20-20: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


20-20: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


22-22: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


22-22: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


23-23: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


23-23: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


25-25: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)


26-26: Table column count
Expected: 4; Actual: 2; Too few cells, row will be missing data

(MD056, table-column-count)

🤖 Prompt for AI Agents
In docs/references/schemas/type-keys-detailed.md around lines 18 to 26 the table
rows for elementText, elementId, elementTestId, elementClass, elementAttribute
and elementAria only have three columns which breaks the table layout; add a
fourth (Default) column to each of those rows — use an empty value for the
default where none exists (i.e., add a trailing pipe and a blank cell for each
affected line) so every row matches the table header Field | Type | Description
| Default.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant