From e100e03e271e038e319b78e086f93a2b210ec211 Mon Sep 17 00:00:00 2001 From: DABH Date: Wed, 19 Aug 2026 00:58:06 -0500 Subject: [PATCH 1/3] Add missing proper nouns to the Temporal.Headings exception list Temporal.Headings flags 407 headings across 190 files. A sample showed a mix of genuine sentence-case violations and false positives on words the repo does treat as proper nouns. This adds only the exceptions backed by evidence elsewhere in the repo: - Command, Commands: glossary defines Command as a primitive; used capitalized in encyclopedia prose. - Events: plural parity with the existing Event entry. - Application, Applications: "Temporal Application" is a core term and Application is already in the accept vocabulary. - Metric: singular parity with the existing Metrics entry. - Plugin, Plugins: "Plugin system" and "Plugins guide" are capitalized in prose and the Plugins guide is a real page. - Audit Log, Audit Logs, Audit Logging: terms.yml canonicalizes "audit logging" to "Audit Logging". Added as exact phrases so bare Log and Logs stay flagged elsewhere. - Amazon: cloud provider proper noun; AWS, GCP, Azure, and Google were already present. - CA: acronym. - Private Service Connect, Cloud Ops API: product names, matching the existing exact-phrase entries such as Azure Key Vault. Measured on docs/: 407 -> 366 violations, 190 -> 176 files, zero newly flagged headings. The rule still fires on genuine title case. --- vale/styles/Temporal/Headings.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/vale/styles/Temporal/Headings.yml b/vale/styles/Temporal/Headings.yml index 71f740d90d..d9faff5e34 100644 --- a/vale/styles/Temporal/Headings.yml +++ b/vale/styles/Temporal/Headings.yml @@ -33,14 +33,19 @@ exceptions: # Temporal primitives and proper nouns - Activity - Activities + - Application + - Applications - Archival - Cloud - Codec + - Command + - Commands - Converter - Cron - Data - Durable - Event + - Events - Execution - Executions - Failure @@ -158,12 +163,21 @@ exceptions: - Versioning - Patching - Endpoint + - Metric - Metrics - Account - Capacity - Connectivity - Continue-As-New + - Plugin + - Plugins + # Exact phrases; "Audit Logging" is the canonical term in Temporal/terms.yml, + # so keep "Log"/"Logs" out of the single-word list above. + - Audit Log + - Audit Logs + - Audit Logging # Cloud provider / networking / industry acronyms + - Amazon - AWS - GCP - DNS @@ -183,10 +197,13 @@ exceptions: - TRUs - PrivateLink - KMS + - CA # Cloud provider product names (exact phrase, not the individual words) - Azure Key Vault - Azure Workload Identity - GCP Workload Identity + - Private Service Connect + - Cloud Ops API - Terraform - Prometheus - Grafana From fce5fd050192a2bb1ab920421d21b14ad43b0adb Mon Sep 17 00:00:00 2001 From: DABH Date: Wed, 19 Aug 2026 01:04:27 -0500 Subject: [PATCH 2/3] Run Vale CI on ruleset changes vale-ci.yml only triggered on docs/**, so a PR that changed the Vale styles themselves never ran Vale. This PR was an example: nothing in CI exercised the exception-list change. A malformed style file makes Vale exit 2 and skip linting entirely, so the gap also meant a broken ruleset could land and silently fail open on every later PR. --- .github/workflows/vale-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/vale-ci.yml b/.github/workflows/vale-ci.yml index f7025784c0..dad39ff0b3 100644 --- a/.github/workflows/vale-ci.yml +++ b/.github/workflows/vale-ci.yml @@ -4,6 +4,12 @@ on: pull_request: paths: - "docs/**" + # Lint the ruleset changes too. A malformed style file makes Vale exit 2 + # and skip linting entirely, which would otherwise fail open on every + # later PR without anything having flagged it here. + - "vale/**" + - ".vale-ci.ini" + - ".github/workflows/vale-ci.yml" permissions: contents: read From 9ee488243c516a1ae9275a48639cc07d080cd9e2 Mon Sep 17 00:00:00 2001 From: DABH Date: Wed, 19 Aug 2026 10:52:12 -0500 Subject: [PATCH 3/3] Drop the Metric exception Metric is a common noun here, not a Temporal term: the OpenMetrics API reference defines "A metric is a numeric attribute..." in lowercase at docs/cloud/metrics/openmetrics/api-reference.mdx:67, and metric is absent from Temporal/terms.yml. The entry also suppressed exactly one heading, and it was a genuine violation: "Namespace/Metric filtering" should be "Namespace/metric filtering". That belongs in the content cleanup, not here. The plural Metrics entry stays. Unlike the singular it guards compound product names such as Cloud Metrics, SDK Metrics, and Workflow Metrics, so singular/plural parity was not a good reason to add Metric. --- vale/styles/Temporal/Headings.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/vale/styles/Temporal/Headings.yml b/vale/styles/Temporal/Headings.yml index d9faff5e34..9ef64b080a 100644 --- a/vale/styles/Temporal/Headings.yml +++ b/vale/styles/Temporal/Headings.yml @@ -163,7 +163,6 @@ exceptions: - Versioning - Patching - Endpoint - - Metric - Metrics - Account - Capacity