Skip to content

Add Vale CI workflow for heading and term linting#4800

Open
lennessyy wants to merge 6 commits into
mainfrom
vale-ci-lint
Open

Add Vale CI workflow for heading and term linting#4800
lennessyy wants to merge 6 commits into
mainfrom
vale-ci-lint

Conversation

@lennessyy

@lennessyy lennessyy commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a GitHub Actions workflow using reviewdog/action-vale to lint prose on PRs that touch docs/
  • Two rules enabled: sentence-style heading casing (Temporal.Headings) and Temporal term capitalization (Temporal.terms)
  • Temporal/Headings.yml is forked from Google/Headings.yml with all Temporal primitives (Workflow, Activity, Execution, Task Queue, etc.) added as exceptions so compound terms don't trigger false positives
  • CI config (.vale-ci.ini) isolates these two rules from the full Vale ruleset
  • Posts inline PR review comments at suggestion level, never blocks merge

Test plan

  • Verify reviewdog posts comments on docs/vale-test/headings-bad.md and docs/vale-test/terms-bad.md
  • Verify no comments on docs/vale-test/headings-good.md and docs/vale-test/terms-good.md
  • Remove docs/vale-test/ before merging

┆Attachments: EDU-6628 Add Vale CI workflow for heading and term linting

Introduces a GitHub Actions workflow using reviewdog to lint prose
on PRs that touch docs/. Checks two rules: sentence-style headings
(with Temporal term exceptions) and Temporal term capitalization.

Includes test fixtures in docs/vale-test/ to trigger the workflow
on this PR — remove before merging.
@lennessyy lennessyy requested a review from a team as a code owner June 30, 2026 20:16
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
temporal-documentation Ready Ready Preview, Comment Jul 2, 2026 6:33pm

Request Review

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

📖 Docs PR preview links

This PR does not change any pages in /docs. If you make updates, links to the modified pages will appear here.

reviewdog/action-vale does not exist. The actual official Vale
action (vale-cli/vale-action, formerly errata-ai/vale-action) has
reviewdog support built in via the reporter input.

@github-actions github-actions Bot left a comment

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.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

vale

docs/vale-test/terms-bad.md|23 col 21| [Temporal.terms] Use 'Workflow Executions' instead of 'workflow executions' when referring to a Temporal term.
docs/vale-test/terms-bad.md|25 col 5| [Temporal.terms] Use 'Heartbeating' instead of 'heartbeating' when referring to a Temporal term.
docs/vale-test/terms-bad.md|25 col 28| [Temporal.terms] Use 'Activity' instead of 'activity' when referring to a Temporal term.
docs/vale-test/terms-bad.md|27 col 5| [Temporal.terms] Use 'Codec Server' instead of 'codec server' when referring to a Temporal term.
docs/vale-test/terms-bad.md|29 col 3| [Temporal.terms] Use 'Child Workflow Execution' instead of 'child workflow execution' when referring to a Temporal term.
docs/vale-test/terms-bad.md|29 col 41| [Temporal.terms] Use 'Parent Close Policy' instead of 'parent close policy' when referring to a Temporal term.
vale/test/terms-bad.md|1 col 36| [Temporal.terms] Use 'Workflow Execution' instead of 'workflow execution' when referring to a Temporal term.
vale/test/terms-bad.md|3 col 5| [Temporal.terms] Use 'Activity Definition' instead of 'activity definition' when referring to a Temporal term.
vale/test/terms-bad.md|5 col 15| [Temporal.terms] Use 'Retry Policy' instead of 'retry policy' when referring to a Temporal term.
vale/test/terms-bad.md|5 col 37| [Temporal.terms] Use 'Activity' instead of 'activity' when referring to a Temporal term.
vale/test/terms-bad.md|7 col 9| [Temporal.terms] Use 'Temporal' instead of 'temporal ' when referring to a Temporal term.
vale/test/terms-bad.md|7 col 39| [Temporal.terms] Use 'Namespaces' instead of 'namespaces' when referring to a Temporal term.
vale/test/terms-bad.md|9 col 5| [Temporal.terms] Use 'Event History' instead of 'event history' when referring to a Temporal term.
vale/test/terms-bad.md|11 col 10| [Temporal.terms] Use 'Task Queue' instead of 'task queue' when referring to a Temporal term.
vale/test/terms-bad.md|11 col 30| [Temporal.terms] Use 'Worker' instead of 'worker' when referring to a Temporal term.
vale/test/terms-bad.md|13 col 3| [Temporal.terms] Use 'Signal' instead of 'signal' when referring to a Temporal term.
vale/test/terms-bad.md|13 col 42| [Temporal.terms] Use 'Workflow' instead of 'workflow' when referring to a Temporal term.
vale/test/terms-bad.md|15 col 7| [Temporal.terms] Use 'Query' instead of 'query' when referring to a Temporal term.
vale/test/terms-bad.md|15 col 25| [Temporal.terms] Use 'Workflow' instead of 'workflow' when referring to a Temporal term.
vale/test/terms-bad.md|17 col 5| [Temporal.terms] Use 'Data Converter' instead of 'data converter' when referring to a Temporal term.
vale/test/terms-bad.md|19 col 1| [Temporal.terms] Use 'gRPC' instead of 'grpc' when referring to a Temporal term.
vale/test/terms-bad.md|19 col 30| [Temporal.terms] Use 'Temporal Server' instead of 'temporal server' when referring to a Temporal term.
vale/test/terms-bad.md|21 col 11| [Temporal.terms] Use 'Search Attributes' instead of 'search attributes' when referring to a Temporal term.
vale/test/terms-bad.md|21 col 33| [Temporal.terms] Use 'Advanced Visibility' instead of 'advanced visibility' when referring to a Temporal term.
vale/test/terms-bad.md|23 col 3| [Temporal.terms] Use 'Schedule' instead of 'schedule' when referring to a Temporal term.
vale/test/terms-bad.md|23 col 21| [Temporal.terms] Use 'Workflow Executions' instead of 'workflow executions' when referring to a Temporal term.
vale/test/terms-bad.md|25 col 5| [Temporal.terms] Use 'Heartbeating' instead of 'heartbeating' when referring to a Temporal term.
vale/test/terms-bad.md|25 col 28| [Temporal.terms] Use 'Activity' instead of 'activity' when referring to a Temporal term.
vale/test/terms-bad.md|27 col 5| [Temporal.terms] Use 'Codec Server' instead of 'codec server' when referring to a Temporal term.
vale/test/terms-bad.md|29 col 3| [Temporal.terms] Use 'Child Workflow Execution' instead of 'child workflow execution' when referring to a Temporal term.
vale/test/terms-bad.md|29 col 41| [Temporal.terms] Use 'Parent Close Policy' instead of 'parent close policy' when referring to a Temporal term.
vale/test/headings-bad.md|1 col 4| [Temporal.Headings] 'Set Up Your Development Environment' should use sentence-style capitalization.
vale/test/headings-bad.md|3 col 4| [Temporal.Headings] 'Getting Started With The Application' should use sentence-style capitalization.
vale/test/headings-bad.md|5 col 4| [Temporal.Headings] 'How To Run Your First Program' should use sentence-style capitalization.
vale/test/headings-bad.md|7 col 4| [Temporal.Headings] 'Building And Testing The Code' should use sentence-style capitalization.
vale/test/headings-bad.md|9 col 4| [Temporal.Headings] 'Configure And Deploy Your Application' should use sentence-style capitalization.

Comment thread docs/vale-test/bad.md Outdated

## Start

Creating reliable applications is a difficult task. [Temporal](https://temporal.io) lets you create fault-tolerant resiliant applications using programming languages you already know, so you can build complex applications that execute successfully and recover from failures.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Task' instead of 'task' when referring to a Temporal term.

Comment thread docs/vale-test/bad.md Outdated
puts "hello world"
```

## Section Three

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.

📝 [vale] reported by reviewdog 🐶
[Temporal.Headings] 'Section Three' should use sentence-style capitalization.

Comment thread docs/vale-test/bad.md Outdated

This is the end. There's no conclusion section.

temporal is a not capitalized.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Temporal' instead of 'temporal ' when referring to a Temporal term.

Comment thread docs/vale-test/bad.md Outdated
Simply use this.
It's a straightforward approach.

temporal single binary

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Temporal CLI' instead of 'temporal single binary' when referring to a Temporal term.

Comment thread docs/vale-test/bad.md Outdated

temporal single binary

the core SDK uses gRPC and rust.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Core SDK' instead of 'core SDK' when referring to a Temporal term.

Comment thread docs/vale-test/terms-bad.md Outdated

The data converter handles serialization.

grpc is the protocol used by temporal server.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'gRPC' instead of 'grpc' when referring to a Temporal term.

Comment thread docs/vale-test/terms-bad.md Outdated

The data converter handles serialization.

grpc is the protocol used by temporal server.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Temporal Server' instead of 'temporal server' when referring to a Temporal term.

Comment thread docs/vale-test/terms-bad.md Outdated

grpc is the protocol used by temporal server.

Configure search attributes for advanced visibility.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Search Attributes' instead of 'search attributes' when referring to a Temporal term.

Comment thread docs/vale-test/terms-bad.md Outdated

grpc is the protocol used by temporal server.

Configure search attributes for advanced visibility.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Advanced Visibility' instead of 'advanced visibility' when referring to a Temporal term.

Comment thread docs/vale-test/terms-bad.md Outdated

Configure search attributes for advanced visibility.

A schedule triggers workflow executions on a recurring basis.

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.

⚠️ [vale] reported by reviewdog 🐶
[Temporal.terms] Use 'Schedule' instead of 'schedule' when referring to a Temporal term.

Adds a good-heading test case for compound terms outside the core
Temporal glossary (Durable External Storage). Removes docs/vale-test/,
which was only there to trigger the Vale CI workflow for manual
verification on the PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants