From a0aafb6364b33d33483acd0c1d3bd0a426cd0d6b Mon Sep 17 00:00:00 2001 From: Darrick Date: Mon, 22 Dec 2025 08:43:01 -0800 Subject: [PATCH 01/13] fix: update custom dictionary --- auth4genai/.vale/styles/config/ignore/authdocs.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/auth4genai/.vale/styles/config/ignore/authdocs.txt b/auth4genai/.vale/styles/config/ignore/authdocs.txt index 7e6bae7b0..4304a4e1b 100644 --- a/auth4genai/.vale/styles/config/ignore/authdocs.txt +++ b/auth4genai/.vale/styles/config/ignore/authdocs.txt @@ -39,6 +39,7 @@ authorizer authorizers Auditability Backchannel +backchannel chatbot chatbots fullstack From b450e354be3193125da4cffc9c33833f9a94492b Mon Sep 17 00:00:00 2001 From: Darrick Date: Tue, 6 Jan 2026 10:39:02 -0800 Subject: [PATCH 02/13] feat: add vale to root --- .vale.ini | 124 ++++++++ .vale/README.md | 164 +++++++++++ .vale/styles/AuthDocs/Brands.yml | 34 +++ .vale/styles/AuthDocs/Spelling.yml | 18 ++ .vale/styles/config/ignore/authdocs.txt | 139 +++++++++ .../config/vocabularies/AuthDocs/accept.txt | 269 ++++++++++++++++++ 6 files changed, 748 insertions(+) create mode 100644 .vale.ini create mode 100644 .vale/README.md create mode 100644 .vale/styles/AuthDocs/Brands.yml create mode 100644 .vale/styles/AuthDocs/Spelling.yml create mode 100644 .vale/styles/config/ignore/authdocs.txt create mode 100644 .vale/styles/config/vocabularies/AuthDocs/accept.txt diff --git a/.vale.ini b/.vale.ini new file mode 100644 index 000000000..cc3f75369 --- /dev/null +++ b/.vale.ini @@ -0,0 +1,124 @@ +; Vale configuration for Mintlify docs. +; Mintlify CI will pick this up if enabled: +; https://www.mintlify.com/docs/deploy/ci +; +; Keep this file under version control and evolve it with the docs: +; https://www.mintlify.com/guides/maintenance +; +; Vale config reference: +; https://vale.sh/docs +; +; MDX support: +; - Vale 3.13+ treats .mdx as a first class format. +; - MDX parsing is handled by the external mdx2vast CLI, which must be +; installed and available on $PATH: +; npm install -g mdx2vast +; +; When Vale flags something that is actually OK: +; - If it is project-wide (for example a product name), add it to: +; .vale/styles/config/ignore/authdocs.txt +; - If it is a systematic branding issue, add a swap to: +; .vale/styles/AuthDocs/Brands.yml +; - Only use {/* vale off */} / {/* vale on */} for +; narrow, one-off cases (quotes, unusual examples). + +StylesPath = .vale/styles + +Vocab = AuthDocs + +; Only report error-level issues. Suggestions and warnings are suppressed +; entirely so devs are not blocked on minor style nits. +MinAlertLevel = error + +; Scopes to ignore completely. These are either: +; - Already covered by other tooling, or +; - Places where language checks are too noisy or fragile +; (inline code, URLs, links, images). +; Note: 'code' is handled by SkippedScopes below for block-level code. +IgnoredScopes = tt, img, url, a + +; Skip entire blocks that are not prose. This keeps Vale out of +; style/script tags,
 blocks, code fences, and figures.
+SkippedScopes = script, style, pre, figure, code
+
+; Optional checks developers may enable locally:
+; vale.Annotations = YES
+
+[*.mdx]
+; Base on Vale's core rules plus our custom AuthDocs style:
+; https://vale.sh/docs/getting-started/configuration/#basedonstyles
+BasedOnStyles = Vale, AuthDocs
+
+; Keep helpful core rules for terminology consistency and
+; repeated word detection across the docs.
+Vale.Terms = NO
+Vale.Repetition = YES
+
+; Replace the built-in spelling rule with a custom one that knows about our
+; domain-specific vocabulary:
+; https://vale.sh/docs/checks/spelling
+; Turning Vale.Spelling off here avoids double reporting issues that our
+; AuthDocs.Spelling rule already handles with an ignore list.
+Vale.Spelling = NO
+AuthDocs.Spelling = YES
+
+; Substitution rule for brand capitalization and common typos:
+; https://vale.sh/docs/checks/substitution
+; Keep this focused so that automated fixes remain predictable.
+AuthDocs.Brands = YES
+
+[*.md]
+; Apply the same style stack to plain Markdown files so behavior
+; is consistent across .md and .mdx content.
+BasedOnStyles = Vale, AuthDocs
+
+; Keep behavior consistent with MDX files.
+Vale.Terms = NO
+Vale.Repetition = YES
+
+; Use the same custom spelling + brand rules as MDX.
+Vale.Spelling = NO
+AuthDocs.Spelling = YES
+AuthDocs.Brands = YES
+
+; Snippets and code-heavy examples: disable brand rules.
+; These files are mostly inline code and copied examples where
+; strict brand enforcement would generate a lot of noise.
+[snippets/**/*.mdx]
+AuthDocs.Brands = NO
+
+; Component demo content: disable spelling and brand rules.
+; This page is primarily example copy used to exercise UI components,
+; not user-facing documentation.
+[components.mdx]
+AuthDocs.Brands = NO
+AuthDocs.Spelling = NO
+
+; Sample app index pages: disable brands.
+; Mostly links, titles, and names where strict enforcement over-triggers.
+[mcp/sample-apps.mdx]
+AuthDocs.Brands = NO
+
+[sample-apps.mdx]
+AuthDocs.Brands = NO
+
+; GitHub integration page: disable brands.
+; Contains github in URLs and domain-like strings where strict brand
+; correction would generate noise.
+[integrations/github.mdx]
+AuthDocs.Brands = NO
+
+; GitHub how-to snippet files: disable brands.
+; Contain lowercase github in text and URLs.
+[snippets/how-tos/github/**/*.mdx]
+AuthDocs.Brands = NO
+
+; SDK documentation pages: disable brands.
+; Contain GitHub sample repository URLs.
+[sdks/**/*.mdx]
+AuthDocs.Brands = NO
+
+; Overview and hub pages: disable brands.
+; Mostly cards and links that aggregate other content.
+[how-tos/overview.mdx]
+AuthDocs.Brands = NO
diff --git a/.vale/README.md b/.vale/README.md
new file mode 100644
index 000000000..a8cb55d76
--- /dev/null
+++ b/.vale/README.md
@@ -0,0 +1,164 @@
+# Vale Linting
+
+This directory contains the Vale configuration used to lint and standardize the documentation in `docs-v2`. Vale helps ensure consistent terminology, brand usage, spelling, and overall prose quality.
+
+## Requirements
+
+To run Vale with MDX support, you must have:
+
+- **Vale 3.13.0 or newer**
+- **mdx2vast 0.3.0 or newer**
+- Node.js and npm installed
+- Both `vale` and `mdx2vast` available on your `$PATH`
+
+## Installation
+
+Vale must be installed locally before running checks. MDX support additionally requires the external parser `mdx2vast`.
+
+Install Vale ([docs](https://vale.sh/docs/install)):
+
+```bash
+brew install vale
+```
+
+Install the MDX parser ([MDX format docs](https://vale.sh/docs/formats/mdx)):
+
+```bash
+npm install -g mdx2vast
+```
+
+Both executables must be available in your `$PATH`.
+
+Run Vale from the `docs-v2` directory:
+
+```bash
+vale .
+```
+
+A clean run should report zero errors. If you see unexpected output, refer to the [MDX behavior notes](https://vale.sh/docs/formats/mdx#behaviors) for details on what Vale ignores by default.
+
+## How MDX content is interpreted
+
+> **Important:** MDX files do *not* support HTML comments (``).
+> Always use MDX comment syntax instead:
+>
+> ```mdx
+> {/* vale off */}
+> ...ignored content...
+> {/* vale on */}
+> ```
+
+Vale parses `.mdx` files using `mdx2vast`. The parser automatically ignores:
+
+* `import` and `export` statements
+* JSX components and JSX blocks
+* fenced code blocks
+* inline backtick code
+* URLs (see Vale’s URL handling notes: https://github.com/errata-ai/vale/issues/320)
+* single-line `{ ... }` JavaScript expressions
+
+These defaults help avoid false positives in pages that combine prose with examples, components, and structured metadata.
+
+Inline MDX-aware controls are supported when necessary. MDX files use curly-brace comment syntax (not HTML comments):
+
+```mdx
+{/* vale off */}   …ignored…   {/* vale on */}
+{/* vale Style.RuleName = NO */}
+{/* vale Style.RuleName["match"] = NO */}
+```
+
+For example, to disable the custom spelling rule for a specific word that would normally be flagged:
+
+```mdx
+{/* vale AuthDocs.Spelling["ocurrance"] = NO */}
+This misspelling is intentional in this context and should be skipped.
+{/* vale AuthDocs.Spelling["ocurrance"] = YES */}
+```
+
+**Note:** These are MDX-style comments. HTML comments (``) will not work in `.mdx` files.
+
+Guidance on these controls:
+[https://vale.sh/docs/topics/config/#comment-based-controls](https://vale.sh/docs/topics/config/#comment-based-controls)
+
+## Configuration structure
+
+All configuration begins with a single file: `.vale.ini`. That file loads a custom style bundle located under `.vale/styles`.
+
+### `.vale.ini`
+
+* Configures MDX and Markdown behavior using a shared style stack
+* Enables project-specific rules via `AuthDocs`
+* Sets global defaults such as `MinAlertLevel = error` (only error-level issues are reported; suggestions and warnings are suppressed)
+* Applies overrides for snippet directories, component demos, and sample-app index pages
+* Contains path-based exceptions for content where strict linting generates false positives
+
+See the Vale config reference:
+[https://vale.sh/docs/topics/config](https://vale.sh/docs/topics/config)
+
+### `.vale/styles/AuthDocs/Spelling.yml`
+
+Defines a custom spelling rule that replaces Vale’s default spellchecker.
+This rule:
+
+* Uses project-specific ignore lists
+* Reduces noise from acronyms, product names, config keys, or identifiers
+* Helps catch real typos while avoiding false positives
+
+Vale spelling check reference:
+[https://vale.sh/docs/checks/spelling](https://vale.sh/docs/checks/spelling)
+
+The ignore list it relies on lives at:
+
+```
+.vale/styles/config/ignore/authdocs.txt
+```
+
+### `.vale/styles/config/ignore/authdocs.txt`
+
+Contains domain-specific vocabulary:
+
+* Product names
+* Framework and platform names
+* Identifiers and config keys
+* Project jargon
+* Terms we expect to appear in code or prose without being flagged
+
+See the “ignore files” section of the spelling check docs:
+[https://vale.sh/docs/checks/spelling/#ignore-files](https://vale.sh/docs/checks/spelling/#ignore-files)
+
+This file should be kept up to date as terminology evolves. Mintlify’s maintenance guidance is helpful here:
+[https://www.mintlify.com/guides/maintenance](https://www.mintlify.com/guides/maintenance)
+
+### `.vale/styles/AuthDocs/Brands.yml`
+
+Contains substitution rules for:
+
+* brand capitalization (for example, `github` → `GitHub`, `javascript` → `JavaScript`)
+* recurring misspellings
+* invalid plurals (for example, `SDK's` → `SDKs`)
+
+Vale substitution check reference:
+[https://vale.sh/docs/checks/substitution](https://vale.sh/docs/checks/substitution)
+
+Only systematic, project-wide corrections should be added.
+
+**Note:** If a file generates repeated false positives from brand checks (for example, GitHub URLs on an integration page), the preferred approach is to disable `AuthDocs.Brands` for that path in `.vale.ini` rather than adding exceptions to the rule. See the "MDX and Markdown overrides in `.vale.ini`" section below.
+
+### MDX and Markdown overrides in `.vale.ini`
+
+Certain paths contain examples, generated text, or content where strict rules generate noise. In these paths we disable or relax specific rules:
+
+* `snippets/**/*.mdx` – brand checks disabled
+* `components.mdx` – brand and spelling checks disabled
+* `sample-apps.mdx` and `mcp/sample-apps.mdx` – brand checks disabled
+* overview or card-heavy pages (`how-tos/overview.mdx`) – brand checks disabled
+
+These overrides help keep CI output stable without disabling important linting elsewhere.
+
+## Helpful references
+
+* Vale documentation: [https://vale.sh/docs](https://vale.sh/docs)
+* MDX parser (`mdx2vast`): [https://github.com/errata-ai/MDX](https://github.com/errata-ai/MDX)
+* Mintlify CI integration: [https://mintlify.com/docs/deploy/ci](https://mintlify.com/docs/deploy/ci)
+* Mintlify maintenance guidance: [https://mintlify.com/guides/maintenance](https://mintlify.com/guides/maintenance)
+* Mintlify writing style tips: [https://mintlify.com/guides/writing-style-tips](https://mintlify.com/guides/writing-style-tips)
diff --git a/.vale/styles/AuthDocs/Brands.yml b/.vale/styles/AuthDocs/Brands.yml
new file mode 100644
index 000000000..16b2f35d5
--- /dev/null
+++ b/.vale/styles/AuthDocs/Brands.yml
@@ -0,0 +1,34 @@
+# Normalization rules for brand names, pluralization fixes, and recurring typos.
+#
+# Substitution rule reference:
+#   https://vale.sh/docs/checks/substitution
+#
+# Guidelines:
+#   - Use this file for systematic, project-wide corrections.
+#   - Add legitimate domain terms to the ignore list instead:
+#       .vale/styles/config/ignore/authdocs.txt
+#   - Prefer substitutions here over inline disable blocks.
+#   - Avoid adding one-off or file-specific corrections.
+
+extends: substitution
+message: "Consider using '%s' instead of '%s'."
+level: error
+ignorecase: true
+scope: text
+
+swap:
+  # Brand capitalization
+  # Word boundaries match whole words only. This can trigger on substrings
+  # like github in "example.github.io" due to punctuation (. = non-word char).
+  # Disable AuthDocs.Brands in files where this generates false positives.
+  "\\bgithub\\b": GitHub
+  "\\bjavascript\\b": JavaScript
+
+  # Incorrect plurals / possessives
+  "SDK's": SDKs
+  "sdk's": SDKs
+
+  # Recurring typos in this repo
+  commnd: command
+  ocurrs: occurs
+  repositores: repositories
diff --git a/.vale/styles/AuthDocs/Spelling.yml b/.vale/styles/AuthDocs/Spelling.yml
new file mode 100644
index 000000000..e14003f6c
--- /dev/null
+++ b/.vale/styles/AuthDocs/Spelling.yml
@@ -0,0 +1,18 @@
+# Custom spelling rule for this documentation set.
+#
+# Spelling rule reference:
+#   https://vale.sh/docs/checks/spelling
+#
+# Purpose:
+#   - Catch actual typos while avoiding noise from domain-specific terms.
+#   - Accepted terms must be placed in the ignore file:
+#       .vale/styles/config/ignore/authdocs.txt
+#   - Inline disabling should be rare and only for unusual cases.
+
+extends: spelling
+message: "Did you really mean '%s'?"
+level: error
+scope: text
+
+ignore:
+  - config/ignore/authdocs.txt
diff --git a/.vale/styles/config/ignore/authdocs.txt b/.vale/styles/config/ignore/authdocs.txt
new file mode 100644
index 000000000..4304a4e1b
--- /dev/null
+++ b/.vale/styles/config/ignore/authdocs.txt
@@ -0,0 +1,139 @@
+# Domain-specific terms and product names that should not trigger spelling errors.
+# One entry per line.
+#
+# Vale ignore-file docs:
+#   https://vale.sh/docs/checks/spelling/#ignore-files
+#
+# Guidelines:
+#   - Add project-wide terms here.
+#   - Add systematic misspellings or capitalization fixes to Brands.yml instead.
+#   - Use inline disables only for rare one-off cases.
+#   - Review periodically:
+#       https://www.mintlify.com/guides/maintenance
+
+# Acronyms / technical terms
+api
+API
+APIs
+async
+CLIs
+const
+Ctrl
+dev
+GANs
+IPs
+LLMs
+LSTMs
+npm
+oauth
+OAuth
+OIDC
+RNNs
+SDKs
+URIs
+
+# Auth / project jargon
+agentic
+Agentic
+authorizer
+authorizers
+Auditability
+Backchannel
+backchannel
+chatbot
+chatbots
+fullstack
+hardcoded
+hardcoding
+Langchain
+Langchain's
+Langgraph
+Passwordless
+pretrained
+Quickstarts
+quickstarts
+Todos
+
+# Framework / platform names
+Auth0
+Auth0-AI
+LangGraph
+LangGraphJS
+Mintlify
+Next.js
+Node.js
+OpenAI
+TokenVault
+TokenVaultInterrupt
+VercelAI
+
+# Product / company / library names
+Basecamp
+Bitbucket
+Bitmoji
+DigitalOcean
+Dropbox
+Entra
+Fastify
+Figma
+Fitbit
+Freshbooks
+Genkit
+Hono
+HuggingFace
+Jira
+LlamaIndex
+Okta
+Salesforce
+Slack
+Snapchat
+Spotify
+Strava
+Tumblr
+Twitch
+Twitter
+Vercel
+Vite
+
+# Identifiers and config keys
+AISDKSample
+applicationName
+applicationType
+Async
+authHandler
+authHeader
+callbackUrl
+client_id
+client_secret
+config
+env
+hostname
+HTTPException
+integrationTypes
+jwtVerify
+logoutUrl
+middleware
+namespaces
+node_version
+offline_access
+refresh_token
+tokensets
+user_id
+uv
+
+# UI labels and intentional literals
+_View
+auditable
+Misconfiguration
+misconfiguration
+reblog
+Secret_
+Unvetted
+
+# Repo-specific vocabulary
+openai
+passthrough
+repo
+repo's
+repos
+sdks
diff --git a/.vale/styles/config/vocabularies/AuthDocs/accept.txt b/.vale/styles/config/vocabularies/AuthDocs/accept.txt
new file mode 100644
index 000000000..d18cf55dd
--- /dev/null
+++ b/.vale/styles/config/vocabularies/AuthDocs/accept.txt
@@ -0,0 +1,269 @@
+abided
+ACLs
+acul
+addon
+Addon
+Addons
+adfs
+admin
+Akamai
+altcss
+Amintha
+API
+Apigee
+apigee
+apis
+APNs
+appi
+Authlib
+Authy
+aws
+Axios
+backoff
+backout
+baseUrl
+bcrypt
+Blazor
+Bogdan
+boolean
+bundler
+Bursty
+bursty
+CA
+Caddy
+Callout
+Cap
+Captcha
+captcha
+cetera
+chiclet
+choco
+CLI
+cms
+cnf
+Cognito
+configs
+Conny
+Contoso
+CORs
+cors
+cql
+Criipto
+cron
+Cron
+crypto
+css
+ctx
+cutover
+Cutover
+CVEs
+cyber
+Datadog
+devkeys
+Diab
+dialogs
+dns
+dotenv
+DPop
+DSARs
+eg
+Egencia
+Eloqua
+eloqua
+envs
+errored
+ESLint
+extenal
+favicon
+Flickr
+form_id
+gdpr
+getPets
+getters
+Ghitea
+Gigya
+Github
+Gradle
+Gretty
+Hauser
+Hiroko
+hoc
+HSMs
+html
+http
+https
+iCloud
+IdP
+Idp
+IDP
+idp
+idToken
+ie
+Inngest
+ip
+ISPs
+johndoe
+Jonno
+Joomla
+jQuery
+json
+Json
+JWKs
+JWT
+jwt
+JWTs
+Kantara
+Katana
+keypair
+keytool
+Kibana
+Knex
+Lamdba
+Laravel
+last_ip
+ldap
+ldaps
+Lerna
+libary
+Litmos
+log_id
+Loggly
+Lucene
+lucene
+Lucide
+Mailgun
+Mailjet
+mailjet
+Marketo
+marketo
+masse
+max_age
+maxAge
+mcp
+MDoc
+mDoc
+metas
+Mfa
+mfa
+mosca
+Muhamad
+mysql
+Netlify
+ngrok
+nodejs
+nonces
+noop
+Nuget
+nuget
+nullish
+Nuxt
+oid
+oidc
+okta
+Okta
+openid
+org_id
+orgs
+OSs
+otp
+OTP
+OTPs
+param
+params
+Params
+parters
+plist
+pnpm
+Pnpm
+Podfile
+postUrl
+Pre
+prefill
+Prefill
+Prijck
+Pubnub
+rbac
+RCDevs
+readme
+Rekey
+rekey
+resends
+saml
+Saml
+scim
+scrypt
+SDK
+SDKWe
+semver
+Sergiu
+Servlet
+servlet
+Shadcn
+SIEMs
+signin
+signup
+Signup
+signups
+Signups
+SLAs
+sms
+Splunk
+sso
+SSOdata
+stil
+sudo
+Sumana
+sys
+Syslog
+systemd
+Tessel
+textbox
+tiktok
+TLDs
+tooltip
+Tooltip
+Twilio
+twilio
+Twillio
+uat
+UIs
+ULError
+uncheck
+unsets
+upn
+Upsert
+upsert
+upsized
+url
+urls
+users
+utils
+uuid
+Verfied
+Visat
+Vitoc
+VMs
+vscode
+Vue
+waad
+webapps
+Webex
+webpack
+Webtask
+webtask
+wle
+WP_User
+WSFed
+xamarin
+Xcode
+Xenial
+xml
+xmldom
+xpath
+XPath
+xtend
+xxHash
+Yubico
+Yubikey
+Zendesk
+Zipline
\ No newline at end of file

From 4ee399b1edfc8339a79c3e321b3c8d84950a6231 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 09:44:40 -0800
Subject: [PATCH 03/13] feat: add GH workflow for vale

---
 .github/workflows/vale-check.yml | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 .github/workflows/vale-check.yml

diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml
new file mode 100644
index 000000000..472929cc8
--- /dev/null
+++ b/.github/workflows/vale-check.yml
@@ -0,0 +1,21 @@
+name: vale
+
+on:
+  pull_request:
+    paths: 
+    - 'main/**/*.md'
+    - 'main/**/*.mdx'
+    - 'main/**/*.jsx'
+    - 'auth4genai/**/*.md'
+    - 'auth4genai/**/*.mdx'
+    - 'auth4genai/**/*.jsx'
+
+jobs:
+  vale:
+    name: runner / vale
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: errata-ai/vale-action@v2.1.1
+        with:
+          vale_flags: "--glob=!{main/docs/fr-ca/*, main/docs/ja-jp/*}"

From 252f55286742dc72018d077eedc5e138746cdaab Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 09:59:48 -0800
Subject: [PATCH 04/13] fix: update typo in mdx to trigger new GH workflow

---
 main/docs/authenticate/database-connections/passkeys.mdx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/main/docs/authenticate/database-connections/passkeys.mdx b/main/docs/authenticate/database-connections/passkeys.mdx
index 94f740a5c..d4fb4d605 100644
--- a/main/docs/authenticate/database-connections/passkeys.mdx
+++ b/main/docs/authenticate/database-connections/passkeys.mdx
@@ -88,6 +88,6 @@ FIDO® is a trademark (registered in numerous countries) of [FIDO Alliance, Inc]
 Multiple Custom Domains is currently available in Early Access. To use this feature, you must have an Enterprise plan. By using this feature, you agree to the applicable Free Trial terms in Okta’s [Master Subscription Agreement](https://www.okta.com/legal). To learn more about Auth0's product release cycle, read [Product Release Stages](https://auth0.com/docs/troubleshoot/product-lifecycle/product-release-stages).
 
 
-If you have Multiple Custom Domains enabled on your tenant, Auth0 maintains a one-to-one relationship between a domain and the passkey for that domain. Uers with a passkey-enabled database can sign up and log in with a passkey, tied to the specific domain it was created on. Users can enroll a Passkey for only one domain (the first one they enroll with, among the multiple custom domains on the tenant).
+If you have Multiple Custom Domains enabled on your tenant, Auth0 maintains a one-to-one relationship between a domain and the passkey for that domain. Users with a passkey-enabled database can sign up and log in with a passkey, tied to the specific domain it was created on. Users can enroll a Passkey for only one domain (the first one they enroll with, among the multiple custom domains on the tenant).
 
 For passwordless login, the selected custom domain should be reflected in the Magic Link for the passwordless login flow. 

From 7dfaa89a5801f2677dd3c2b78f5a14476ba8a569 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 10:10:16 -0800
Subject: [PATCH 05/13] feat: update vale.ini and vale-check workflow

---
 .github/workflows/vale-check.yml | 21 +++++++++++----------
 .vale.ini                        |  3 ++-
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml
index 472929cc8..51ce59ada 100644
--- a/.github/workflows/vale-check.yml
+++ b/.github/workflows/vale-check.yml
@@ -1,21 +1,22 @@
-name: vale
+name: Vale
 
 on:
   pull_request:
-    paths: 
-    - 'main/**/*.md'
-    - 'main/**/*.mdx'
-    - 'main/**/*.jsx'
-    - 'auth4genai/**/*.md'
-    - 'auth4genai/**/*.mdx'
-    - 'auth4genai/**/*.jsx'
+    paths:
+      - 'main/**/*.md'
+      - 'main/**/*.mdx'
+      - 'main/**/*.jsx'
+      - 'auth4genai/**/*.md'
+      - 'auth4genai/**/*.mdx'
+      - 'auth4genai/**/*.jsx'
 
 jobs:
   vale:
     name: runner / vale
     runs-on: ubuntu-latest
     steps:
+      - name: Install mdx2vast
+        run: npm install -g mdx2vast
+
       - uses: actions/checkout@v4
       - uses: errata-ai/vale-action@v2.1.1
-        with:
-          vale_flags: "--glob=!{main/docs/fr-ca/*, main/docs/ja-jp/*}"
diff --git a/.vale.ini b/.vale.ini
index cc3f75369..2f0341430 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -24,7 +24,8 @@
 
 StylesPath = .vale/styles
 
-Vocab = AuthDocs
+; Primary vocabulary and all domain-specific vocabularies
+Vocab = Abbreviations, ApiProtocols, AuthSecurity, Brands, CodeTerms, Cryptography, Databases, DevTools, FileFormats, Frameworks, Miscellaneous, MobileHardware, MonitoringLogging, OperatingSystems, PackageManagers, Platforms, SocialMedia, TeamMembers, TechnicalConcepts
 
 ; Only report error-level issues. Suggestions and warnings are suppressed
 ; entirely so devs are not blocked on minor style nits.

From 0cf397fac2f2cfdf0240dbc5d249a3b9a22af02a Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 10:11:41 -0800
Subject: [PATCH 06/13] feat: add vocabulary

---
 .../vocabularies/Abbreviations/accept.txt     |  38 ++
 .../vocabularies/ApiProtocols/accept.txt      |  29 ++
 .../config/vocabularies/AuthDocs/accept.txt   | 269 --------------
 .../vocabularies/AuthSecurity/accept.txt      |  83 +++++
 .../config/vocabularies/Brands/accept.txt     |  64 ++++
 .../config/vocabularies/CodeTerms/accept.txt  | 348 ++++++++++++++++++
 .../vocabularies/Cryptography/accept.txt      |   4 +
 .../config/vocabularies/Databases/accept.txt  |   4 +
 .../config/vocabularies/DevTools/accept.txt   |  21 ++
 .../vocabularies/FileFormats/accept.txt       |  10 +
 .../config/vocabularies/Frameworks/accept.txt |  23 ++
 .../vocabularies/Miscellaneous/accept.txt     |  26 ++
 .../vocabularies/MobileHardware/accept.txt    |   5 +
 .../vocabularies/MonitoringLogging/accept.txt |   9 +
 .../vocabularies/OperatingSystems/accept.txt  |   1 +
 .../vocabularies/PackageManagers/accept.txt   |   5 +
 .../config/vocabularies/Platforms/accept.txt  |   8 +
 .../vocabularies/SocialMedia/accept.txt       |  16 +
 .../vocabularies/TeamMembers/accept.txt       |  25 ++
 .../vocabularies/TechnicalConcepts/accept.txt |  63 ++++
 20 files changed, 782 insertions(+), 269 deletions(-)
 create mode 100644 .vale/styles/config/vocabularies/Abbreviations/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/ApiProtocols/accept.txt
 delete mode 100644 .vale/styles/config/vocabularies/AuthDocs/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/AuthSecurity/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Brands/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/CodeTerms/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Cryptography/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Databases/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/DevTools/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/FileFormats/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Frameworks/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Miscellaneous/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/MobileHardware/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/MonitoringLogging/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/OperatingSystems/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/PackageManagers/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/Platforms/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/SocialMedia/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/TeamMembers/accept.txt
 create mode 100644 .vale/styles/config/vocabularies/TechnicalConcepts/accept.txt

diff --git a/.vale/styles/config/vocabularies/Abbreviations/accept.txt b/.vale/styles/config/vocabularies/Abbreviations/accept.txt
new file mode 100644
index 000000000..45f93ac73
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Abbreviations/accept.txt
@@ -0,0 +1,38 @@
+ACLs
+API
+APNs
+CA
+CLI
+cms
+CORs
+cql
+CVEs
+dns
+DNS
+DSARs
+eg
+html
+HTML
+HSMs
+http
+https
+ie
+ip
+IP
+ISPs
+JWKs
+JWT
+mcp
+MDoc
+mDoc
+OSs
+SDK
+se
+SIEMs
+SLAs
+sms
+TLDs
+uat
+UAT
+UIs
+VMs
diff --git a/.vale/styles/config/vocabularies/ApiProtocols/accept.txt b/.vale/styles/config/vocabularies/ApiProtocols/accept.txt
new file mode 100644
index 000000000..79d2a1a2d
--- /dev/null
+++ b/.vale/styles/config/vocabularies/ApiProtocols/accept.txt
@@ -0,0 +1,29 @@
+ACLs
+API
+apis
+backoff
+baseUrl
+configs
+conformant
+CVEs
+DSARs
+form_id
+getPets
+http
+https
+json
+Json
+last_ip
+log_id
+max_age
+maxAge
+oid
+openid
+org_id
+param
+params
+Params
+postUrl
+url
+urls
+WSFed
diff --git a/.vale/styles/config/vocabularies/AuthDocs/accept.txt b/.vale/styles/config/vocabularies/AuthDocs/accept.txt
deleted file mode 100644
index d18cf55dd..000000000
--- a/.vale/styles/config/vocabularies/AuthDocs/accept.txt
+++ /dev/null
@@ -1,269 +0,0 @@
-abided
-ACLs
-acul
-addon
-Addon
-Addons
-adfs
-admin
-Akamai
-altcss
-Amintha
-API
-Apigee
-apigee
-apis
-APNs
-appi
-Authlib
-Authy
-aws
-Axios
-backoff
-backout
-baseUrl
-bcrypt
-Blazor
-Bogdan
-boolean
-bundler
-Bursty
-bursty
-CA
-Caddy
-Callout
-Cap
-Captcha
-captcha
-cetera
-chiclet
-choco
-CLI
-cms
-cnf
-Cognito
-configs
-Conny
-Contoso
-CORs
-cors
-cql
-Criipto
-cron
-Cron
-crypto
-css
-ctx
-cutover
-Cutover
-CVEs
-cyber
-Datadog
-devkeys
-Diab
-dialogs
-dns
-dotenv
-DPop
-DSARs
-eg
-Egencia
-Eloqua
-eloqua
-envs
-errored
-ESLint
-extenal
-favicon
-Flickr
-form_id
-gdpr
-getPets
-getters
-Ghitea
-Gigya
-Github
-Gradle
-Gretty
-Hauser
-Hiroko
-hoc
-HSMs
-html
-http
-https
-iCloud
-IdP
-Idp
-IDP
-idp
-idToken
-ie
-Inngest
-ip
-ISPs
-johndoe
-Jonno
-Joomla
-jQuery
-json
-Json
-JWKs
-JWT
-jwt
-JWTs
-Kantara
-Katana
-keypair
-keytool
-Kibana
-Knex
-Lamdba
-Laravel
-last_ip
-ldap
-ldaps
-Lerna
-libary
-Litmos
-log_id
-Loggly
-Lucene
-lucene
-Lucide
-Mailgun
-Mailjet
-mailjet
-Marketo
-marketo
-masse
-max_age
-maxAge
-mcp
-MDoc
-mDoc
-metas
-Mfa
-mfa
-mosca
-Muhamad
-mysql
-Netlify
-ngrok
-nodejs
-nonces
-noop
-Nuget
-nuget
-nullish
-Nuxt
-oid
-oidc
-okta
-Okta
-openid
-org_id
-orgs
-OSs
-otp
-OTP
-OTPs
-param
-params
-Params
-parters
-plist
-pnpm
-Pnpm
-Podfile
-postUrl
-Pre
-prefill
-Prefill
-Prijck
-Pubnub
-rbac
-RCDevs
-readme
-Rekey
-rekey
-resends
-saml
-Saml
-scim
-scrypt
-SDK
-SDKWe
-semver
-Sergiu
-Servlet
-servlet
-Shadcn
-SIEMs
-signin
-signup
-Signup
-signups
-Signups
-SLAs
-sms
-Splunk
-sso
-SSOdata
-stil
-sudo
-Sumana
-sys
-Syslog
-systemd
-Tessel
-textbox
-tiktok
-TLDs
-tooltip
-Tooltip
-Twilio
-twilio
-Twillio
-uat
-UIs
-ULError
-uncheck
-unsets
-upn
-Upsert
-upsert
-upsized
-url
-urls
-users
-utils
-uuid
-Verfied
-Visat
-Vitoc
-VMs
-vscode
-Vue
-waad
-webapps
-Webex
-webpack
-Webtask
-webtask
-wle
-WP_User
-WSFed
-xamarin
-Xcode
-Xenial
-xml
-xmldom
-xpath
-XPath
-xtend
-xxHash
-Yubico
-Yubikey
-Zendesk
-Zipline
\ No newline at end of file
diff --git a/.vale/styles/config/vocabularies/AuthSecurity/accept.txt b/.vale/styles/config/vocabularies/AuthSecurity/accept.txt
new file mode 100644
index 000000000..ac69b6d23
--- /dev/null
+++ b/.vale/styles/config/vocabularies/AuthSecurity/accept.txt
@@ -0,0 +1,83 @@
+addon
+Addon
+Addons
+adfs
+APNs
+Captcha
+CAPTCHAs
+captcha
+clickjacking
+Clickjacking
+cnf
+CORs
+cors
+crypto
+cybersecurity
+Cybersecurity
+DPop
+Failover
+failover
+gdpr
+hCaptcha
+HSMs
+IdP
+Idp
+IDP
+idp
+idToken
+JWKs
+JWT
+jwt
+JWTs
+Kerberos
+keypair
+keystore
+Keystores
+Keystore
+ldap
+ldaps
+Mfa
+mfa
+Multifactor
+multifactor
+Multitenancy
+Multitenant
+multitenant
+nonces
+oidc
+Onboarding
+onboarding
+openid
+otp
+OTP
+OTPs
+passcode
+passcodes
+passwordless
+passwordlessMethod
+rbac
+reauthenticate
+reauthentication
+Reauthentication
+Rekey
+rekey
+saml
+Saml
+SAMLRequest
+samlConfiguration
+scim
+signin
+signup
+Signup
+signups
+Signups
+sso
+SSOdata
+Unenroll
+unencrypted
+Unencrypted
+unlinking
+Unlinking
+untrusted
+upn
+Webauthn
diff --git a/.vale/styles/config/vocabularies/Brands/accept.txt b/.vale/styles/config/vocabularies/Brands/accept.txt
new file mode 100644
index 000000000..9af1ccd43
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Brands/accept.txt
@@ -0,0 +1,64 @@
+Akamai
+Alterian
+Apigee
+Atlassian
+Authy
+Caddy
+Cloudfare
+Cloudwatch
+Cocoapods
+Cognito
+Contoso
+Criipto
+Datadog
+Egencia
+Eloqua
+Evernote
+Fabrikam
+Flickr
+Freshdesk
+Freshworks
+Gigya
+Github
+Gravatar
+hCaptcha
+Inngest
+iWelcome
+Kantara
+Keycloak
+Kickstarter
+Litmos
+Loggly
+Mailchimp
+Mailgun
+Mailjet
+Marketo
+Mixpanel
+Netlify
+Okta
+Papertrail
+Pluralsight
+Pubnub
+RCDevs
+Runscope
+Sailthru
+Sendgrid
+Sharepoint
+Sparkpost
+Splunk
+SSOCircle
+Stormpath
+Symplified
+Tessel
+Twilio
+Twillio
+Ubisecure
+Unbounce
+Webex
+Windowslive
+Wordpress
+Workpath
+Yubico
+Zendesk
+Zipline
+Ziplines
diff --git a/.vale/styles/config/vocabularies/CodeTerms/accept.txt b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
new file mode 100644
index 000000000..b813e8ce3
--- /dev/null
+++ b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
@@ -0,0 +1,348 @@
+abided
+access_denied
+access_token
+accessToken
+addonConfiguration
+age_range
+allowAutocomplete
+allowedConnections
+allowlist
+Allowlist
+allowlisting
+Allowlisting
+allowLogin
+altcss
+app_metadata
+app_metada
+appInsight
+api_limit
+api_limit_warning
+authButtons
+authentication
+authentiction
+authenticatino
+authResult
+auth_time
+authorization_details
+autoclose
+autocorrect
+autofill
+autofocus
+autoload
+automations
+Automations
+azure_storage
+backgroundImage
+backgroundColor
+backend's
+backout
+baseUrl
+birthdate
+blocked_for
+blocked_user
+boolean
+booleans
+breakpoint
+browserify
+bucket_name
+Bursty
+bursty
+Callouts
+cetera
+change_password_error
+checkSession
+changeEmail
+classdesc
+client_name
+clientcertificate
+clientId
+clientMetadata
+client_secret_expires_at
+composable
+config_file
+connectionResolver
+connectionScopes
+couchbase
+created_at
+createMemberships
+credential_type
+crossdomain
+ctx
+currentMemberships
+customizationthrough
+cutover
+Cutover
+datapoints
+datastores
+datepicker
+Datetime
+DBConnection
+defaultLocation
+Denylist
+denylist
+deprovision
+Deprovision
+deprovisioned
+Deprovisioning
+deserialization
+deserialize
+deserialized
+devkeys
+device_id
+disabledColor
+displayName
+email_verified
+emailsthrough
+embeddable
+enablement
+envs
+errorMessage
+errorTranslator
+errored
+expirations
+expires_in
+expiresIn
+export_ids
+extenal
+externalId
+Fabrikam's
+family_name
+favorite_athletes
+favorite_teams
+first_name
+flashMessage
+focusses
+foregroundColor
+form_id
+form_post
+form_title
+Frontmatter
+frontmatter
+fullscreen
+geofencing
+getErrors
+getters
+getPets
+get_logs
+get_users
+given_name
+globalMessage
+grant_type
+handleAuthentication
+hashCleanup
+headerBlur
+headerColor
+hideTitle
+hoc
+hostnames
+HTTPOnly
+id_token
+id_token_hint
+idToken
+Indexable
+initializer
+initialScreen
+input_file
+install_type
+interaction_required
+invalid_request
+invalid_user_password
+isAuthenticated
+isBlocked
+isLoading
+isMobile
+is_verified
+johndoe
+jsonwebtoken
+languageDictionary
+last_ip
+last_login
+last_login_relative
+last_name
+last_password_reset
+last_updated_at
+linked_clients
+log_id
+loggerOutput
+logLevel
+logins_count
+logout_hint
+logout_tokens
+localstorage
+loopback
+masse
+max_age
+maxAge
+metas
+middle_name
+Mintlify's
+misconfigured
+misconfigurations
+namespace
+Namespace
+namespaced
+Namespaced
+namespacing
+name_format
+noop
+nullish
+objectId
+oid
+org_id
+org_name
+organization_id
+orgs
+output_folder
+pageBackground
+param
+params
+Params
+parseHash
+parters
+passwordManager
+password_complexity_options
+password_leaked
+phone_number
+phone_verified
+popupOptions
+post_logout_redirect_uri
+postUrl
+postgres
+Pre
+preconfigured
+prefill
+Prefill
+prepended
+primaryColor
+programatically
+proxying
+proxy_url
+public_key
+publish_actions
+querystring
+readme
+Realtime
+redirect_uri
+redirect_uris
+redirectUri
+redirectUrl
+refresh_tokens
+repeatPassword
+resendManager
+resends
+responseMode
+response_type
+responseType
+returnTo
+riskAssessment
+sameSite
+samesite
+saltRounds
+sanitization
+scannability
+secret_encoded
+selected_initiators
+semver
+session_transfer_token
+session_transfer_tokens
+setSession
+shortcode
+shortcodes
+showTerms
+sortProperty
+startResend
+stil
+Stringified
+stringified
+subject_token
+substring
+sys
+templated
+Terraform's
+textbox
+textColor
+third_party_id
+Timeframe
+timeframe
+timeframes
+Timesheet
+timesheet
+Timesheets
+timesheets
+titleColor
+token_type
+Tokeninfo
+tokenset
+tooltip
+Tooltip
+tooltips
+Tooltips
+too_many_attempts
+touchpoints
+ui_locales
+uncheck
+Uncomment
+uncomment
+unauthorized_client
+unsecure
+unsupported_credential_type
+unsets
+Unvalidated
+unvalidated
+updated_at
+updated_time
+Upsert
+upsert
+upsized
+URLScheme
+use_scope_descriptions_for_consent
+useErrors
+userField
+userFields
+useResend
+userinfo
+userMessage
+userMetadata
+user_about_me
+user_age_range
+user_education_history
+user_games_activity
+user_gender
+user_link
+user_managed_groups
+user_metadata
+user_name
+user_profile
+user_relationship_details
+user_relationships
+user_religion_politics
+user_website
+user_work_history
+usernameStyle
+users
+utils
+uuid
+validator
+Validator
+verify_email
+verify_password
+viewport
+walkthrough
+Walkthrough
+websocket
+webservice
+webserver
+Webtasks
+webtasks
+whitepaper
+withAudience
+withConnection
+withHeaders
+withParameters
+withScheme
+withScope
+wle
+wordpress
+workstream
+workstreams
+WP_User
diff --git a/.vale/styles/config/vocabularies/Cryptography/accept.txt b/.vale/styles/config/vocabularies/Cryptography/accept.txt
new file mode 100644
index 000000000..416680fc8
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Cryptography/accept.txt
@@ -0,0 +1,4 @@
+bcrypt
+crypto
+scrypt
+xxHash
diff --git a/.vale/styles/config/vocabularies/Databases/accept.txt b/.vale/styles/config/vocabularies/Databases/accept.txt
new file mode 100644
index 000000000..2b18fadaf
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Databases/accept.txt
@@ -0,0 +1,4 @@
+couchbase
+mysql_pool
+oracledb
+postgres
diff --git a/.vale/styles/config/vocabularies/DevTools/accept.txt b/.vale/styles/config/vocabularies/DevTools/accept.txt
new file mode 100644
index 000000000..49d7be491
--- /dev/null
+++ b/.vale/styles/config/vocabularies/DevTools/accept.txt
@@ -0,0 +1,21 @@
+Authlib
+Axios
+bcrypt
+choco
+ESLint
+Gradle
+Gretty
+Joomla
+Knex
+Lerna
+Lucide
+ngrok
+Podfile
+pnpm
+Pnpm
+scrypt
+Shadcn
+vscode
+webpack
+Xcode
+xmldom
diff --git a/.vale/styles/config/vocabularies/FileFormats/accept.txt b/.vale/styles/config/vocabularies/FileFormats/accept.txt
new file mode 100644
index 000000000..61a93a40a
--- /dev/null
+++ b/.vale/styles/config/vocabularies/FileFormats/accept.txt
@@ -0,0 +1,10 @@
+css
+dotenv
+favicon
+html
+json
+Json
+plist
+xml
+xpath
+XPath
diff --git a/.vale/styles/config/vocabularies/Frameworks/accept.txt b/.vale/styles/config/vocabularies/Frameworks/accept.txt
new file mode 100644
index 000000000..3cc9b3c4c
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Frameworks/accept.txt
@@ -0,0 +1,23 @@
+Angular's
+Blazor
+Cartfile
+Javascript
+javascript
+jQuery
+Katana
+Laravel
+Linkedin
+Multisite
+multisite
+Nuxt
+Servlet
+servlet
+Servlets
+servlets
+SQLServer
+sqlserver
+Terraform's
+Vue
+whatsapp
+Winforms
+Xamarin
diff --git a/.vale/styles/config/vocabularies/Miscellaneous/accept.txt b/.vale/styles/config/vocabularies/Miscellaneous/accept.txt
new file mode 100644
index 000000000..f92e5aec1
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Miscellaneous/accept.txt
@@ -0,0 +1,26 @@
+acul
+addons
+admin
+appi
+Cap
+chiclet
+cors
+cyber
+dns
+favicon
+getters
+ip
+keytool
+Lamdba
+Lucene
+lucene
+nodejs
+signup
+Signup
+textbox
+tiktok
+uat
+ULError
+Verfied
+vscode
+Visat
diff --git a/.vale/styles/config/vocabularies/MobileHardware/accept.txt b/.vale/styles/config/vocabularies/MobileHardware/accept.txt
new file mode 100644
index 000000000..9324f4ecf
--- /dev/null
+++ b/.vale/styles/config/vocabularies/MobileHardware/accept.txt
@@ -0,0 +1,5 @@
+APNs
+iCloud
+Podfile
+Xcode
+Yubikey
diff --git a/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt b/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt
new file mode 100644
index 000000000..effe9278c
--- /dev/null
+++ b/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt
@@ -0,0 +1,9 @@
+Datadog
+Datatracker
+Kibana
+Loggly
+Logentries
+Logstash
+Papertrail's
+Splunk
+Syslog
diff --git a/.vale/styles/config/vocabularies/OperatingSystems/accept.txt b/.vale/styles/config/vocabularies/OperatingSystems/accept.txt
new file mode 100644
index 000000000..a52625d00
--- /dev/null
+++ b/.vale/styles/config/vocabularies/OperatingSystems/accept.txt
@@ -0,0 +1 @@
+Xenial
diff --git a/.vale/styles/config/vocabularies/PackageManagers/accept.txt b/.vale/styles/config/vocabularies/PackageManagers/accept.txt
new file mode 100644
index 000000000..8e4551a56
--- /dev/null
+++ b/.vale/styles/config/vocabularies/PackageManagers/accept.txt
@@ -0,0 +1,5 @@
+bundler
+Nuget
+nuget
+pnpm
+Pnpm
diff --git a/.vale/styles/config/vocabularies/Platforms/accept.txt b/.vale/styles/config/vocabularies/Platforms/accept.txt
new file mode 100644
index 000000000..2fc781b53
--- /dev/null
+++ b/.vale/styles/config/vocabularies/Platforms/accept.txt
@@ -0,0 +1,8 @@
+apigee
+aws
+eloqua
+iCloud
+mailjet
+marketo
+okta
+twilio
diff --git a/.vale/styles/config/vocabularies/SocialMedia/accept.txt b/.vale/styles/config/vocabularies/SocialMedia/accept.txt
new file mode 100644
index 000000000..81c83fffe
--- /dev/null
+++ b/.vale/styles/config/vocabularies/SocialMedia/accept.txt
@@ -0,0 +1,16 @@
+business_management
+favorite_athletes
+favorite_teams
+groups_access_member_info
+inspirational_people
+leads_retrieval
+meeting_for
+pages_manage_instant_articles
+publish_actions
+publish_to_groups
+read_custom_friendlists
+rsvp_event
+security_settings
+significant_other
+video_upload_limits
+viewer_can_send_gift
diff --git a/.vale/styles/config/vocabularies/TeamMembers/accept.txt b/.vale/styles/config/vocabularies/TeamMembers/accept.txt
new file mode 100644
index 000000000..d334bb238
--- /dev/null
+++ b/.vale/styles/config/vocabularies/TeamMembers/accept.txt
@@ -0,0 +1,25 @@
+Abbaspour
+Amintha
+Balmaceda
+Bogdan
+Conny
+Dahlgren
+Detering
+Diab
+Flintstone
+Frederik
+Ghitea
+Hauser
+Hiroko
+Hoekstra
+Jonno
+Khoriander
+Metahexa
+Muhamad
+Poovamraj
+Prijck
+Sergiu
+Sumana
+Thanganadar
+Thiagarajan
+Vitoc
diff --git a/.vale/styles/config/vocabularies/TechnicalConcepts/accept.txt b/.vale/styles/config/vocabularies/TechnicalConcepts/accept.txt
new file mode 100644
index 000000000..4f7d863d0
--- /dev/null
+++ b/.vale/styles/config/vocabularies/TechnicalConcepts/accept.txt
@@ -0,0 +1,63 @@
+architecting
+backdooring
+backoff
+backout
+blockquote
+Callout
+chiclet
+combatting
+cron
+Cron
+cutover
+Cutover
+Decompiling
+decompile
+decompiled
+dialogs
+failback
+Forgeable
+hardcode
+IPrincipal
+keylogging
+knowledgebase
+libary
+Mainscreen
+matchers
+mitigations
+mod_auth_openidc
+Monorepo
+monorepo
+mosca
+nodejs
+Operationalization
+operationalize
+performant
+plaintext
+Plaintext
+postback
+prefill
+Prefill
+reinitiate
+requestbin
+requestor
+requestors
+reprompting
+retrigger
+reverifying
+rollouts
+roundtrips
+Runtimes
+runtimes
+Screenboard
+scrollable
+serverless
+sudo
+syntaxes
+systemd
+transcation
+Uncustomizable
+unrequested
+webapps
+Webtask
+webtask
+Ziplining

From fae166d1b505e4b7efcd0982e0454cbea747c828 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 10:21:22 -0800
Subject: [PATCH 07/13] fix: remove duplicate empty file

---
 main/docs/authenticate/configure-custom-token-exchange.mdx | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 main/docs/authenticate/configure-custom-token-exchange.mdx

diff --git a/main/docs/authenticate/configure-custom-token-exchange.mdx b/main/docs/authenticate/configure-custom-token-exchange.mdx
deleted file mode 100644
index e69de29bb..000000000

From 267c7c6acafbc2353acc6b20d42a668c4fe59517 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 11:16:47 -0800
Subject: [PATCH 08/13] feat: add glob to remove fr-ca and ja-jp from vale
 check

---
 .github/workflows/vale-check.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml
index 51ce59ada..fbf76c3f5 100644
--- a/.github/workflows/vale-check.yml
+++ b/.github/workflows/vale-check.yml
@@ -20,3 +20,5 @@ jobs:
 
       - uses: actions/checkout@v4
       - uses: errata-ai/vale-action@v2.1.1
+        with:
+          vale_flags: "--glob=!{main/docs/fr-ca/*,main/docs/ja-jp/*}"

From 14ffde3d8aef607d6c8a7979b8dd5df5a091df30 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 12:00:52 -0800
Subject: [PATCH 09/13] chore: update vocabulary

---
 .vale/styles/config/vocabularies/CodeTerms/accept.txt | 4 ++++
 .vale/styles/config/vocabularies/Databases/accept.txt | 1 +
 2 files changed, 5 insertions(+)

diff --git a/.vale/styles/config/vocabularies/CodeTerms/accept.txt b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
index b813e8ce3..d049e4609 100644
--- a/.vale/styles/config/vocabularies/CodeTerms/accept.txt
+++ b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
@@ -214,6 +214,8 @@ prefill
 Prefill
 prepended
 primaryColor
+privacy_policies
+privacy_policies_timestamp
 programatically
 proxying
 proxy_url
@@ -246,6 +248,7 @@ semver
 session_transfer_token
 session_transfer_tokens
 setSession
+short_name
 shortcode
 shortcodes
 showTerms
@@ -258,6 +261,7 @@ subject_token
 substring
 sys
 templated
+tenant_name_example
 Terraform's
 textbox
 textColor
diff --git a/.vale/styles/config/vocabularies/Databases/accept.txt b/.vale/styles/config/vocabularies/Databases/accept.txt
index 2b18fadaf..57e648195 100644
--- a/.vale/styles/config/vocabularies/Databases/accept.txt
+++ b/.vale/styles/config/vocabularies/Databases/accept.txt
@@ -1,4 +1,5 @@
 couchbase
+mysql
 mysql_pool
 oracledb
 postgres

From a84129f7039e9b52603127a95cee63be233ed484 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 12:09:52 -0800
Subject: [PATCH 10/13] feat: remove vale from auth4genai and update README.md

---
 README.md                                     |   4 +
 auth4genai/.vale.ini                          | 122 -------------
 auth4genai/.vale/README.md                    | 164 ------------------
 auth4genai/.vale/styles/AuthDocs/Brands.yml   |  34 ----
 auth4genai/.vale/styles/AuthDocs/Spelling.yml |  18 --
 .../.vale/styles/config/ignore/authdocs.txt   | 139 ---------------
 auth4genai/README.md                          |  12 +-
 7 files changed, 8 insertions(+), 485 deletions(-)
 delete mode 100644 auth4genai/.vale.ini
 delete mode 100644 auth4genai/.vale/README.md
 delete mode 100644 auth4genai/.vale/styles/AuthDocs/Brands.yml
 delete mode 100644 auth4genai/.vale/styles/AuthDocs/Spelling.yml
 delete mode 100644 auth4genai/.vale/styles/config/ignore/authdocs.txt

diff --git a/README.md b/README.md
index 4d08fb8dd..55cbc7365 100644
--- a/README.md
+++ b/README.md
@@ -110,6 +110,10 @@ lychee --format detailed --verbose --root-dir "$(pwd)/auth4genai" \
   'auth4genai/**/*.md' 'auth4genai/**/*.mdx' 'auth4genai/**/*.jsx'
 ```
 
+## Vale Linting
+
+We use [Vale](https://vale.sh/) to keep terminology and brand usage consistent across the docs. See the dedicated Vale guide in [`./.vale/README.md`](./.vale/README.md) for details on configuration structure, MDX support, and how to extend or adjust the rules.
+
 ### Notes
 
 * You can combine `--base-url` and glob patterns however you like; the examples above are the patterns used in CI.
diff --git a/auth4genai/.vale.ini b/auth4genai/.vale.ini
deleted file mode 100644
index d505bde39..000000000
--- a/auth4genai/.vale.ini
+++ /dev/null
@@ -1,122 +0,0 @@
-; Vale configuration for Mintlify docs.
-; Mintlify CI will pick this up if enabled:
-; https://www.mintlify.com/docs/deploy/ci
-;
-; Keep this file under version control and evolve it with the docs:
-; https://www.mintlify.com/guides/maintenance
-;
-; Vale config reference:
-; https://vale.sh/docs
-;
-; MDX support:
-; - Vale 3.13+ treats .mdx as a first class format.
-; - MDX parsing is handled by the external mdx2vast CLI, which must be
-;   installed and available on $PATH:
-;     npm install -g mdx2vast
-;
-; When Vale flags something that is actually OK:
-; - If it is project-wide (for example a product name), add it to:
-;     .vale/styles/config/ignore/authdocs.txt
-; - If it is a systematic branding issue, add a swap to:
-;     .vale/styles/AuthDocs/Brands.yml
-; - Only use {/* vale off */} / {/* vale on */} for
-;   narrow, one-off cases (quotes, unusual examples).
-
-StylesPath = .vale/styles
-
-; Only report error-level issues. Suggestions and warnings are suppressed
-; entirely so devs are not blocked on minor style nits.
-MinAlertLevel = error
-
-; Scopes to ignore completely. These are either:
-; - Already covered by other tooling, or
-; - Places where language checks are too noisy or fragile
-;   (inline code, URLs, links, images).
-; Note: 'code' is handled by SkippedScopes below for block-level code.
-IgnoredScopes = tt, img, url, a
-
-; Skip entire blocks that are not prose. This keeps Vale out of
-; style/script tags, 
 blocks, code fences, and figures.
-SkippedScopes = script, style, pre, figure, code
-
-; Optional checks developers may enable locally:
-; vale.Annotations = YES
-
-[*.mdx]
-; Base on Vale's core rules plus our custom AuthDocs style:
-; https://vale.sh/docs/getting-started/configuration/#basedonstyles
-BasedOnStyles = Vale, AuthDocs
-
-; Keep helpful core rules for terminology consistency and
-; repeated word detection across the docs.
-Vale.Terms = YES
-Vale.Repetition = YES
-
-; Replace the built-in spelling rule with a custom one that knows about our
-; domain-specific vocabulary:
-; https://vale.sh/docs/checks/spelling
-; Turning Vale.Spelling off here avoids double reporting issues that our
-; AuthDocs.Spelling rule already handles with an ignore list.
-Vale.Spelling = NO
-AuthDocs.Spelling = YES
-
-; Substitution rule for brand capitalization and common typos:
-; https://vale.sh/docs/checks/substitution
-; Keep this focused so that automated fixes remain predictable.
-AuthDocs.Brands = YES
-
-[*.md]
-; Apply the same style stack to plain Markdown files so behavior
-; is consistent across .md and .mdx content.
-BasedOnStyles = Vale, AuthDocs
-
-; Keep behavior consistent with MDX files.
-Vale.Terms = YES
-Vale.Repetition = YES
-
-; Use the same custom spelling + brand rules as MDX.
-Vale.Spelling = NO
-AuthDocs.Spelling = YES
-AuthDocs.Brands = YES
-
-; Snippets and code-heavy examples: disable brand rules.
-; These files are mostly inline code and copied examples where
-; strict brand enforcement would generate a lot of noise.
-[snippets/**/*.mdx]
-AuthDocs.Brands = NO
-
-; Component demo content: disable spelling and brand rules.
-; This page is primarily example copy used to exercise UI components,
-; not user-facing documentation.
-[components.mdx]
-AuthDocs.Brands = NO
-AuthDocs.Spelling = NO
-
-; Sample app index pages: disable brands.
-; Mostly links, titles, and names where strict enforcement over-triggers.
-[mcp/sample-apps.mdx]
-AuthDocs.Brands = NO
-
-[sample-apps.mdx]
-AuthDocs.Brands = NO
-
-; GitHub integration page: disable brands.
-; Contains github in URLs and domain-like strings where strict brand
-; correction would generate noise.
-[integrations/github.mdx]
-AuthDocs.Brands = NO
-
-; GitHub how-to snippet files: disable brands.
-; Contain lowercase github in text and URLs.
-[snippets/how-tos/github/**/*.mdx]
-AuthDocs.Brands = NO
-
-; SDK documentation pages: disable brands.
-; Contain GitHub sample repository URLs.
-[sdks/**/*.mdx]
-AuthDocs.Brands = NO
-
-; Overview and hub pages: disable brands.
-; Mostly cards and links that aggregate other content.
-[how-tos/overview.mdx]
-AuthDocs.Brands = NO
diff --git a/auth4genai/.vale/README.md b/auth4genai/.vale/README.md
deleted file mode 100644
index 20becd041..000000000
--- a/auth4genai/.vale/README.md
+++ /dev/null
@@ -1,164 +0,0 @@
-# Vale Linting
-
-This directory contains the Vale configuration used to lint and standardize the documentation in `auth4genai`. Vale helps ensure consistent terminology, brand usage, spelling, and overall prose quality.
-
-## Requirements
-
-To run Vale with MDX support, you must have:
-
-- **Vale 3.13.0 or newer**
-- **mdx2vast 0.3.0 or newer**
-- Node.js and npm installed
-- Both `vale` and `mdx2vast` available on your `$PATH`
-
-## Installation
-
-Vale must be installed locally before running checks. MDX support additionally requires the external parser `mdx2vast`.
-
-Install Vale ([docs](https://vale.sh/docs/install)):
-
-```bash
-brew install vale
-```
-
-Install the MDX parser ([MDX format docs](https://vale.sh/docs/formats/mdx)):
-
-```bash
-npm install -g mdx2vast
-```
-
-Both executables must be available in your `$PATH`.
-
-Run Vale from the `auth4genai` directory:
-
-```bash
-vale .
-```
-
-A clean run should report zero errors. If you see unexpected output, refer to the [MDX behavior notes](https://vale.sh/docs/formats/mdx#behaviors) for details on what Vale ignores by default.
-
-## How MDX content is interpreted
-
-> **Important:** MDX files do *not* support HTML comments (``).
-> Always use MDX comment syntax instead:
->
-> ```mdx
-> {/* vale off */}
-> ...ignored content...
-> {/* vale on */}
-> ```
-
-Vale parses `.mdx` files using `mdx2vast`. The parser automatically ignores:
-
-* `import` and `export` statements
-* JSX components and JSX blocks
-* fenced code blocks
-* inline backtick code
-* URLs (see Vale’s URL handling notes: https://github.com/errata-ai/vale/issues/320)
-* single-line `{ ... }` JavaScript expressions
-
-These defaults help avoid false positives in pages that combine prose with examples, components, and structured metadata.
-
-Inline MDX-aware controls are supported when necessary. MDX files use curly-brace comment syntax (not HTML comments):
-
-```mdx
-{/* vale off */}   …ignored…   {/* vale on */}
-{/* vale Style.RuleName = NO */}
-{/* vale Style.RuleName["match"] = NO */}
-```
-
-For example, to disable the custom spelling rule for a specific word that would normally be flagged:
-
-```mdx
-{/* vale AuthDocs.Spelling["ocurrance"] = NO */}
-This misspelling is intentional in this context and should be skipped.
-{/* vale AuthDocs.Spelling["ocurrance"] = YES */}
-```
-
-**Note:** These are MDX-style comments. HTML comments (``) will not work in `.mdx` files.
-
-Guidance on these controls:
-[https://vale.sh/docs/topics/config/#comment-based-controls](https://vale.sh/docs/topics/config/#comment-based-controls)
-
-## Configuration structure
-
-All configuration begins with a single file: `.vale.ini`. That file loads a custom style bundle located under `.vale/styles`.
-
-### `.vale.ini`
-
-* Configures MDX and Markdown behavior using a shared style stack
-* Enables project-specific rules via `AuthDocs`
-* Sets global defaults such as `MinAlertLevel = error` (only error-level issues are reported; suggestions and warnings are suppressed)
-* Applies overrides for snippet directories, component demos, and sample-app index pages
-* Contains path-based exceptions for content where strict linting generates false positives
-
-See the Vale config reference:
-[https://vale.sh/docs/topics/config](https://vale.sh/docs/topics/config)
-
-### `.vale/styles/AuthDocs/Spelling.yml`
-
-Defines a custom spelling rule that replaces Vale’s default spellchecker.
-This rule:
-
-* Uses project-specific ignore lists
-* Reduces noise from acronyms, product names, config keys, or identifiers
-* Helps catch real typos while avoiding false positives
-
-Vale spelling check reference:
-[https://vale.sh/docs/checks/spelling](https://vale.sh/docs/checks/spelling)
-
-The ignore list it relies on lives at:
-
-```
-.vale/styles/config/ignore/authdocs.txt
-```
-
-### `.vale/styles/config/ignore/authdocs.txt`
-
-Contains domain-specific vocabulary:
-
-* Product names
-* Framework and platform names
-* Identifiers and config keys
-* Project jargon
-* Terms we expect to appear in code or prose without being flagged
-
-See the “ignore files” section of the spelling check docs:
-[https://vale.sh/docs/checks/spelling/#ignore-files](https://vale.sh/docs/checks/spelling/#ignore-files)
-
-This file should be kept up to date as terminology evolves. Mintlify’s maintenance guidance is helpful here:
-[https://www.mintlify.com/guides/maintenance](https://www.mintlify.com/guides/maintenance)
-
-### `.vale/styles/AuthDocs/Brands.yml`
-
-Contains substitution rules for:
-
-* brand capitalization (for example, `github` → `GitHub`, `javascript` → `JavaScript`)
-* recurring misspellings
-* invalid plurals (for example, `SDK's` → `SDKs`)
-
-Vale substitution check reference:
-[https://vale.sh/docs/checks/substitution](https://vale.sh/docs/checks/substitution)
-
-Only systematic, project-wide corrections should be added.
-
-**Note:** If a file generates repeated false positives from brand checks (for example, GitHub URLs on an integration page), the preferred approach is to disable `AuthDocs.Brands` for that path in `.vale.ini` rather than adding exceptions to the rule. See the "MDX and Markdown overrides in `.vale.ini`" section below.
-
-### MDX and Markdown overrides in `.vale.ini`
-
-Certain paths contain examples, generated text, or content where strict rules generate noise. In these paths we disable or relax specific rules:
-
-* `snippets/**/*.mdx` – brand checks disabled
-* `components.mdx` – brand and spelling checks disabled
-* `sample-apps.mdx` and `mcp/sample-apps.mdx` – brand checks disabled
-* overview or card-heavy pages (`how-tos/overview.mdx`) – brand checks disabled
-
-These overrides help keep CI output stable without disabling important linting elsewhere.
-
-## Helpful references
-
-* Vale documentation: [https://vale.sh/docs](https://vale.sh/docs)
-* MDX parser (`mdx2vast`): [https://github.com/errata-ai/MDX](https://github.com/errata-ai/MDX)
-* Mintlify CI integration: [https://mintlify.com/docs/deploy/ci](https://mintlify.com/docs/deploy/ci)
-* Mintlify maintenance guidance: [https://mintlify.com/guides/maintenance](https://mintlify.com/guides/maintenance)
-* Mintlify writing style tips: [https://mintlify.com/guides/writing-style-tips](https://mintlify.com/guides/writing-style-tips)
diff --git a/auth4genai/.vale/styles/AuthDocs/Brands.yml b/auth4genai/.vale/styles/AuthDocs/Brands.yml
deleted file mode 100644
index 16b2f35d5..000000000
--- a/auth4genai/.vale/styles/AuthDocs/Brands.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Normalization rules for brand names, pluralization fixes, and recurring typos.
-#
-# Substitution rule reference:
-#   https://vale.sh/docs/checks/substitution
-#
-# Guidelines:
-#   - Use this file for systematic, project-wide corrections.
-#   - Add legitimate domain terms to the ignore list instead:
-#       .vale/styles/config/ignore/authdocs.txt
-#   - Prefer substitutions here over inline disable blocks.
-#   - Avoid adding one-off or file-specific corrections.
-
-extends: substitution
-message: "Consider using '%s' instead of '%s'."
-level: error
-ignorecase: true
-scope: text
-
-swap:
-  # Brand capitalization
-  # Word boundaries match whole words only. This can trigger on substrings
-  # like github in "example.github.io" due to punctuation (. = non-word char).
-  # Disable AuthDocs.Brands in files where this generates false positives.
-  "\\bgithub\\b": GitHub
-  "\\bjavascript\\b": JavaScript
-
-  # Incorrect plurals / possessives
-  "SDK's": SDKs
-  "sdk's": SDKs
-
-  # Recurring typos in this repo
-  commnd: command
-  ocurrs: occurs
-  repositores: repositories
diff --git a/auth4genai/.vale/styles/AuthDocs/Spelling.yml b/auth4genai/.vale/styles/AuthDocs/Spelling.yml
deleted file mode 100644
index cd5d47365..000000000
--- a/auth4genai/.vale/styles/AuthDocs/Spelling.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Custom spelling rule for this documentation set.
-#
-# Spelling rule reference:
-#   https://vale.sh/docs/checks/spelling
-#
-# Purpose:
-#   - Catch actual typos while avoiding noise from domain-specific terms.
-#   - Accepted terms must be placed in the ignore file:
-#       .vale/styles/config/ignore/authdocs.txt
-#   - Inline disabling should be rare and only for unusual cases.
-
-extends: spelling
-message: "Did you really mean '%s'?"
-level: error
-scope: text
-
-ignore:
-- config/ignore/authdocs.txt
diff --git a/auth4genai/.vale/styles/config/ignore/authdocs.txt b/auth4genai/.vale/styles/config/ignore/authdocs.txt
deleted file mode 100644
index 4304a4e1b..000000000
--- a/auth4genai/.vale/styles/config/ignore/authdocs.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-# Domain-specific terms and product names that should not trigger spelling errors.
-# One entry per line.
-#
-# Vale ignore-file docs:
-#   https://vale.sh/docs/checks/spelling/#ignore-files
-#
-# Guidelines:
-#   - Add project-wide terms here.
-#   - Add systematic misspellings or capitalization fixes to Brands.yml instead.
-#   - Use inline disables only for rare one-off cases.
-#   - Review periodically:
-#       https://www.mintlify.com/guides/maintenance
-
-# Acronyms / technical terms
-api
-API
-APIs
-async
-CLIs
-const
-Ctrl
-dev
-GANs
-IPs
-LLMs
-LSTMs
-npm
-oauth
-OAuth
-OIDC
-RNNs
-SDKs
-URIs
-
-# Auth / project jargon
-agentic
-Agentic
-authorizer
-authorizers
-Auditability
-Backchannel
-backchannel
-chatbot
-chatbots
-fullstack
-hardcoded
-hardcoding
-Langchain
-Langchain's
-Langgraph
-Passwordless
-pretrained
-Quickstarts
-quickstarts
-Todos
-
-# Framework / platform names
-Auth0
-Auth0-AI
-LangGraph
-LangGraphJS
-Mintlify
-Next.js
-Node.js
-OpenAI
-TokenVault
-TokenVaultInterrupt
-VercelAI
-
-# Product / company / library names
-Basecamp
-Bitbucket
-Bitmoji
-DigitalOcean
-Dropbox
-Entra
-Fastify
-Figma
-Fitbit
-Freshbooks
-Genkit
-Hono
-HuggingFace
-Jira
-LlamaIndex
-Okta
-Salesforce
-Slack
-Snapchat
-Spotify
-Strava
-Tumblr
-Twitch
-Twitter
-Vercel
-Vite
-
-# Identifiers and config keys
-AISDKSample
-applicationName
-applicationType
-Async
-authHandler
-authHeader
-callbackUrl
-client_id
-client_secret
-config
-env
-hostname
-HTTPException
-integrationTypes
-jwtVerify
-logoutUrl
-middleware
-namespaces
-node_version
-offline_access
-refresh_token
-tokensets
-user_id
-uv
-
-# UI labels and intentional literals
-_View
-auditable
-Misconfiguration
-misconfiguration
-reblog
-Secret_
-Unvetted
-
-# Repo-specific vocabulary
-openai
-passthrough
-repo
-repo's
-repos
-sdks
diff --git a/auth4genai/README.md b/auth4genai/README.md
index 4209fbfde..b1881f31b 100644
--- a/auth4genai/README.md
+++ b/auth4genai/README.md
@@ -58,20 +58,16 @@ In this repo, code block instantiation follows this pattern:
 
 For example:
 
-```
+````
 
 ```bash .env wrap lines
 ...
 
-```
+````
 
-```
+````
 
 ```typescript ./src/auth0/app wrap lines highlight={1,7-10}
 ...
 
-```
-
-## Vale Linting
-
-We use [Vale](https://vale.sh/) to keep terminology and brand usage consistent across the docs. See the dedicated Vale guide in [`./.vale/README.md`](./.vale/README.md) for details on configuration structure, MDX support, and how to extend or adjust the rules.
+````

From 835e81865142f331c3e975cd9958558962c620b6 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Wed, 7 Jan 2026 14:12:52 -0800
Subject: [PATCH 11/13] chore: clean up vocab lists

---
 .vale.ini                                     |  2 +-
 .../vocabularies/Abbreviations/accept.txt     | 12 ---------
 .../vocabularies/ApiProtocols/accept.txt      |  5 ----
 .../vocabularies/AuthSecurity/accept.txt      |  5 +---
 .../config/vocabularies/Brands/accept.txt     |  8 ++++++
 .../config/vocabularies/CodeTerms/accept.txt  | 26 -------------------
 .../config/vocabularies/DevTools/accept.txt   |  7 -----
 .../vocabularies/Miscellaneous/accept.txt     | 13 ----------
 .../vocabularies/MobileHardware/accept.txt    |  1 -
 .../vocabularies/MonitoringLogging/accept.txt |  9 -------
 10 files changed, 10 insertions(+), 78 deletions(-)
 delete mode 100644 .vale/styles/config/vocabularies/MonitoringLogging/accept.txt

diff --git a/.vale.ini b/.vale.ini
index 2f0341430..e5d7571a2 100644
--- a/.vale.ini
+++ b/.vale.ini
@@ -25,7 +25,7 @@
 StylesPath = .vale/styles
 
 ; Primary vocabulary and all domain-specific vocabularies
-Vocab = Abbreviations, ApiProtocols, AuthSecurity, Brands, CodeTerms, Cryptography, Databases, DevTools, FileFormats, Frameworks, Miscellaneous, MobileHardware, MonitoringLogging, OperatingSystems, PackageManagers, Platforms, SocialMedia, TeamMembers, TechnicalConcepts
+Vocab = Abbreviations, ApiProtocols, AuthSecurity, Brands, CodeTerms, Cryptography, Databases, DevTools, FileFormats, Frameworks, Miscellaneous, MobileHardware, OperatingSystems, PackageManagers, Platforms, SocialMedia, TeamMembers, TechnicalConcepts
 
 ; Only report error-level issues. Suggestions and warnings are suppressed
 ; entirely so devs are not blocked on minor style nits.
diff --git a/.vale/styles/config/vocabularies/Abbreviations/accept.txt b/.vale/styles/config/vocabularies/Abbreviations/accept.txt
index 45f93ac73..2fc0fae00 100644
--- a/.vale/styles/config/vocabularies/Abbreviations/accept.txt
+++ b/.vale/styles/config/vocabularies/Abbreviations/accept.txt
@@ -1,27 +1,15 @@
-ACLs
-API
-APNs
 CA
 CLI
 cms
-CORs
 cql
-CVEs
 dns
 DNS
-DSARs
 eg
-html
 HTML
-HSMs
-http
-https
 ie
 ip
 IP
 ISPs
-JWKs
-JWT
 mcp
 MDoc
 mDoc
diff --git a/.vale/styles/config/vocabularies/ApiProtocols/accept.txt b/.vale/styles/config/vocabularies/ApiProtocols/accept.txt
index 79d2a1a2d..d3de02059 100644
--- a/.vale/styles/config/vocabularies/ApiProtocols/accept.txt
+++ b/.vale/styles/config/vocabularies/ApiProtocols/accept.txt
@@ -1,8 +1,6 @@
 ACLs
 API
 apis
-backoff
-baseUrl
 configs
 conformant
 CVEs
@@ -11,14 +9,11 @@ form_id
 getPets
 http
 https
-json
-Json
 last_ip
 log_id
 max_age
 maxAge
 oid
-openid
 org_id
 param
 params
diff --git a/.vale/styles/config/vocabularies/AuthSecurity/accept.txt b/.vale/styles/config/vocabularies/AuthSecurity/accept.txt
index ac69b6d23..57e82257e 100644
--- a/.vale/styles/config/vocabularies/AuthSecurity/accept.txt
+++ b/.vale/styles/config/vocabularies/AuthSecurity/accept.txt
@@ -2,23 +2,20 @@ addon
 Addon
 Addons
 adfs
-APNs
 Captcha
 CAPTCHAs
 captcha
 clickjacking
 Clickjacking
 cnf
-CORs
 cors
-crypto
+CORs
 cybersecurity
 Cybersecurity
 DPop
 Failover
 failover
 gdpr
-hCaptcha
 HSMs
 IdP
 Idp
diff --git a/.vale/styles/config/vocabularies/Brands/accept.txt b/.vale/styles/config/vocabularies/Brands/accept.txt
index 9af1ccd43..b829beb13 100644
--- a/.vale/styles/config/vocabularies/Brands/accept.txt
+++ b/.vale/styles/config/vocabularies/Brands/accept.txt
@@ -11,6 +11,7 @@ Cognito
 Contoso
 Criipto
 Datadog
+Datatracker
 Egencia
 Eloqua
 Evernote
@@ -26,9 +27,12 @@ Inngest
 iWelcome
 Kantara
 Keycloak
+Kibana
 Kickstarter
 Litmos
+Logentries
 Loggly
+Logstash
 Mailchimp
 Mailgun
 Mailjet
@@ -37,6 +41,7 @@ Mixpanel
 Netlify
 Okta
 Papertrail
+Papertrail's
 Pluralsight
 Pubnub
 RCDevs
@@ -49,11 +54,14 @@ Splunk
 SSOCircle
 Stormpath
 Symplified
+Syslog
 Tessel
+tiktok
 Twilio
 Twillio
 Ubisecure
 Unbounce
+vscode
 Webex
 Windowslive
 Wordpress
diff --git a/.vale/styles/config/vocabularies/CodeTerms/accept.txt b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
index d049e4609..97b3bc627 100644
--- a/.vale/styles/config/vocabularies/CodeTerms/accept.txt
+++ b/.vale/styles/config/vocabularies/CodeTerms/accept.txt
@@ -35,7 +35,6 @@ azure_storage
 backgroundImage
 backgroundColor
 backend's
-backout
 baseUrl
 birthdate
 blocked_for
@@ -62,7 +61,6 @@ composable
 config_file
 connectionResolver
 connectionScopes
-couchbase
 created_at
 createMemberships
 credential_type
@@ -70,8 +68,6 @@ crossdomain
 ctx
 currentMemberships
 customizationthrough
-cutover
-Cutover
 datapoints
 datastores
 datepicker
@@ -107,13 +103,10 @@ extenal
 externalId
 Fabrikam's
 family_name
-favorite_athletes
-favorite_teams
 first_name
 flashMessage
 focusses
 foregroundColor
-form_id
 form_post
 form_title
 Frontmatter
@@ -121,8 +114,6 @@ frontmatter
 fullscreen
 geofencing
 getErrors
-getters
-getPets
 get_logs
 get_users
 given_name
@@ -138,7 +129,6 @@ hostnames
 HTTPOnly
 id_token
 id_token_hint
-idToken
 Indexable
 initializer
 initialScreen
@@ -155,14 +145,12 @@ is_verified
 johndoe
 jsonwebtoken
 languageDictionary
-last_ip
 last_login
 last_login_relative
 last_name
 last_password_reset
 last_updated_at
 linked_clients
-log_id
 loggerOutput
 logLevel
 logins_count
@@ -171,8 +159,6 @@ logout_tokens
 localstorage
 loopback
 masse
-max_age
-maxAge
 metas
 middle_name
 Mintlify's
@@ -187,16 +173,11 @@ name_format
 noop
 nullish
 objectId
-oid
-org_id
 org_name
 organization_id
 orgs
 output_folder
 pageBackground
-param
-params
-Params
 parseHash
 parters
 passwordManager
@@ -206,12 +187,8 @@ phone_number
 phone_verified
 popupOptions
 post_logout_redirect_uri
-postUrl
-postgres
 Pre
 preconfigured
-prefill
-Prefill
 prepended
 primaryColor
 privacy_policies
@@ -220,7 +197,6 @@ programatically
 proxying
 proxy_url
 public_key
-publish_actions
 querystring
 readme
 Realtime
@@ -262,8 +238,6 @@ substring
 sys
 templated
 tenant_name_example
-Terraform's
-textbox
 textColor
 third_party_id
 Timeframe
diff --git a/.vale/styles/config/vocabularies/DevTools/accept.txt b/.vale/styles/config/vocabularies/DevTools/accept.txt
index 49d7be491..a817a6f85 100644
--- a/.vale/styles/config/vocabularies/DevTools/accept.txt
+++ b/.vale/styles/config/vocabularies/DevTools/accept.txt
@@ -1,6 +1,5 @@
 Authlib
 Axios
-bcrypt
 choco
 ESLint
 Gradle
@@ -10,12 +9,6 @@ Knex
 Lerna
 Lucide
 ngrok
-Podfile
-pnpm
-Pnpm
-scrypt
 Shadcn
-vscode
 webpack
-Xcode
 xmldom
diff --git a/.vale/styles/config/vocabularies/Miscellaneous/accept.txt b/.vale/styles/config/vocabularies/Miscellaneous/accept.txt
index f92e5aec1..edcc0c3ce 100644
--- a/.vale/styles/config/vocabularies/Miscellaneous/accept.txt
+++ b/.vale/styles/config/vocabularies/Miscellaneous/accept.txt
@@ -3,24 +3,11 @@ addons
 admin
 appi
 Cap
-chiclet
-cors
 cyber
-dns
-favicon
 getters
-ip
 keytool
-Lamdba
 Lucene
 lucene
-nodejs
-signup
-Signup
-textbox
-tiktok
-uat
 ULError
 Verfied
-vscode
 Visat
diff --git a/.vale/styles/config/vocabularies/MobileHardware/accept.txt b/.vale/styles/config/vocabularies/MobileHardware/accept.txt
index 9324f4ecf..83f7cc210 100644
--- a/.vale/styles/config/vocabularies/MobileHardware/accept.txt
+++ b/.vale/styles/config/vocabularies/MobileHardware/accept.txt
@@ -1,5 +1,4 @@
 APNs
-iCloud
 Podfile
 Xcode
 Yubikey
diff --git a/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt b/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt
deleted file mode 100644
index effe9278c..000000000
--- a/.vale/styles/config/vocabularies/MonitoringLogging/accept.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-Datadog
-Datatracker
-Kibana
-Loggly
-Logentries
-Logstash
-Papertrail's
-Splunk
-Syslog

From 47a0ed8039a18c39b3b0fbcbe34400ac05d32f4a Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Thu, 8 Jan 2026 07:58:09 -0800
Subject: [PATCH 12/13] feat: error on fail in GH actions

---
 .github/workflows/vale-check.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml
index fbf76c3f5..d89989d90 100644
--- a/.github/workflows/vale-check.yml
+++ b/.github/workflows/vale-check.yml
@@ -22,3 +22,5 @@ jobs:
       - uses: errata-ai/vale-action@v2.1.1
         with:
           vale_flags: "--glob=!{main/docs/fr-ca/*,main/docs/ja-jp/*}"
+          fail_on_error: true
+          filter_mode: nofilter

From 4876d9d72d3e683c4ac44eb2838448e5cb457fb5 Mon Sep 17 00:00:00 2001
From: Darrick 
Date: Thu, 8 Jan 2026 12:16:26 -0800
Subject: [PATCH 13/13] feat: update to check auth4genai only

---
 .github/workflows/vale-check.yml | 6 ++----
 .vale/styles/AuthDocs/Brands.yml | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml
index d89989d90..1c369ca63 100644
--- a/.github/workflows/vale-check.yml
+++ b/.github/workflows/vale-check.yml
@@ -3,9 +3,7 @@ name: Vale
 on:
   pull_request:
     paths:
-      - 'main/**/*.md'
-      - 'main/**/*.mdx'
-      - 'main/**/*.jsx'
+      # Add paths to files we want Vale to check
       - 'auth4genai/**/*.md'
       - 'auth4genai/**/*.mdx'
       - 'auth4genai/**/*.jsx'
@@ -21,6 +19,6 @@ jobs:
       - uses: actions/checkout@v4
       - uses: errata-ai/vale-action@v2.1.1
         with:
-          vale_flags: "--glob=!{main/docs/fr-ca/*,main/docs/ja-jp/*}"
+          files: '["auth4genai/"]'
           fail_on_error: true
           filter_mode: nofilter
diff --git a/.vale/styles/AuthDocs/Brands.yml b/.vale/styles/AuthDocs/Brands.yml
index 16b2f35d5..f329b9653 100644
--- a/.vale/styles/AuthDocs/Brands.yml
+++ b/.vale/styles/AuthDocs/Brands.yml
@@ -12,7 +12,7 @@
 
 extends: substitution
 message: "Consider using '%s' instead of '%s'."
-level: error
+level: suggestion
 ignorecase: true
 scope: text