Skip to content

fix(ci): vale config - #196

Merged
rymnc merged 1 commit into
masterfrom
ci/fix-vale-config
Sep 9, 2026
Merged

fix(ci): vale config#196
rymnc merged 1 commit into
masterfrom
ci/fix-vale-config

Conversation

@rymnc

@rymnc rymnc commented Sep 9, 2026

Copy link
Copy Markdown
Member

What are you adding?

  • Vendor/Protocol
  • Enterprise Use Case
  • Update to existing content
  • Other

Description

fixes the vale config issue after inspecting ci logs

Checklist

  • I've checked this doesn't duplicate existing content
  • All links work
  • Info is accurate

@rymnc
rymnc merged commit b468053 into master Sep 9, 2026
4 checks passed
@rymnc
rymnc deleted the ci/fix-vale-config branch September 9, 2026 11:15
oskarth added a commit that referenced this pull request Sep 10, 2026
The Prose Quality (Vale) job has never worked as a gate. #196 turned it
green by adding `continue-on-error: true`, so the step can no longer fail
the build. The green run itself proves it: run 34344604531 still logs
`##[error]Vale and reviewdog exited with status code: 1` after reporting
207 findings.

Three defects stack up.

1. The `files` input never reaches Vale. `.github/workflows/ci.yml` passed
   it as a YAML block scalar, and #196 changed that to a block scalar plus
   `separator: "\n"`. Neither works. vale-action reads `separator` through
   `@actions/core` `getInput`, which trims whitespace, so the newline
   arrives as an empty string and the multi-line `files` value falls
   through to `JSON.parse` and throws. The action logs "User-specified
   path is invalid; falling back to 'all'" and lints the whole repository
   instead of the six content directories.
2. EthSystems.Marketing flags the bare words "only", "first" and "unique".
   Those are ordinary technical prose and produce most of the findings in
   the linted scope.
3. reviewdog exits 1 on any result, whatever `fail_on_error` says, and
   GitHub caps annotations at 50 per job. So the job fails on volume, and
   the only way anyone found to stop it failing was to stop it reporting.

Changes:

- Scope the Marketing rule to promotional claims: "the only solution",
  "world's first", "first-of-its-kind", "truly unique", "leading
  provider", and the existing superlative and buzzword lists.
- Drop the Terminology swap that forced "Multi-Party Computation" to
  lower case, and restore the title-case expansion in GLOSSARY.md that
  #195 changed to satisfy it. The glossary writes "FHE (Fully Homomorphic
  Encryption)" and "TEE (Trusted Execution Environment)" in title case on
  the lines around it, and GLOSSARY.md is not one of the files the job
  lints, so that finding should never have been reported.
- Ignore file names used as markdown link text. They are identifiers, not
  prose.
- Pass `files` as a JSON array, the one form the action parses.
- Drop `continue-on-error` from the Vale step so it can gate again.
- Fix the real content: enterprise-grade, next-generation, scalable,
  robust and comprehensive in five vendor and pattern cards, plus the
  remaining ERC-7573 and DA Layer terminology drift.

Verified with Vale 3.20.0, the version CI installs. Findings in the
linted scope: 187 on master, 0 here. Whole repository: 207 to 7, all in
QA-AUDIT.md and the gitignored validation report, neither of which the
job lints. On a fixture the rules still catch "leading provider",
"enterprise-grade" and "world's first", and no longer flag "only the
sender learns the amount", "the first step" or "a unique nullifier".
oskarth added a commit that referenced this pull request Sep 10, 2026
The Prose Quality (Vale) job has never worked as a gate. #196 turned it
green by adding `continue-on-error: true`, so the step can no longer fail
the build. The green run itself proves it: run 34344604531 still logs
`##[error]Vale and reviewdog exited with status code: 1` after reporting
207 findings.

Three defects stack up.

1. The `files` input never reaches Vale. `.github/workflows/ci.yml` passed
   it as a YAML block scalar, and #196 changed that to a block scalar plus
   `separator: "\n"`. Neither works. vale-action reads `separator` through
   `@actions/core` `getInput`, which trims whitespace, so the newline
   arrives as an empty string and the multi-line `files` value falls
   through to `JSON.parse` and throws. The action logs "User-specified
   path is invalid; falling back to 'all'" and lints the whole repository
   instead of the six content directories.
2. EthSystems.Marketing flags the bare words "only", "first" and "unique".
   Those are ordinary technical prose and produce most of the findings in
   the linted scope.
3. reviewdog exits 1 on any result, whatever `fail_on_error` says, and
   GitHub caps annotations at 50 per job. So the job fails on volume, and
   the only way anyone found to stop it failing was to stop it reporting.

Changes:

- Scope the Marketing rule to promotional claims: "the only solution",
  "world's first", "first-of-its-kind", "truly unique", "leading
  provider", and the existing superlative and buzzword lists.
- Drop the Terminology swap that forced "Multi-Party Computation" to
  lower case, and restore the title-case expansion in GLOSSARY.md that
  #195 changed to satisfy it. The glossary writes "FHE (Fully Homomorphic
  Encryption)" and "TEE (Trusted Execution Environment)" in title case on
  the lines around it, and GLOSSARY.md is not one of the files the job
  lints, so that finding should never have been reported.
- Ignore file names used as markdown link text. They are identifiers, not
  prose.
- Pass `files` as a JSON array, the one form the action parses.
- Drop `continue-on-error` from the Vale step so it can gate again.
- Fix the real content: enterprise-grade, next-generation, scalable,
  robust and comprehensive in five vendor and pattern cards, plus the
  remaining ERC-7573 and DA Layer terminology drift.

Verified with Vale 3.20.0, the version CI installs. Findings in the
linted scope: 187 on master, 0 here. Whole repository: 207 to 7, all in
QA-AUDIT.md and the gitignored validation report, neither of which the
job lints. On a fixture the rules still catch "leading provider",
"enterprise-grade" and "world's first", and no longer flag "only the
sender learns the amount", "the first step" or "a unique nullifier".
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.

1 participant