Skip to content

fix(ci): clear the Vale findings that keep master red - #195

Merged
rymnc merged 1 commit into
masterfrom
centaur/vale-master-green
Sep 9, 2026
Merged

fix(ci): clear the Vale findings that keep master red#195
rymnc merged 1 commit into
masterfrom
centaur/vale-master-green

Conversation

@ethsystems-bot

Copy link
Copy Markdown
Contributor

Master has been red on Prose Quality (Vale) for a while. This clears it.

What CI reports

The check surfaces 9 findings. All are in files nobody touched recently.

File Rule Match
approach-private-broadcasting.md:95 Marketing only
approach-private-bonds.md:168 Marketing only
approach-private-bonds.md:126 Marketing first
CONTRIBUTING.md:14, :69 Marketing first
CHANGELOG.md:32, :39 Marketing only
GLOSSARY.md:50 Terminology data availability
GLOSSARY.md:114 Terminology Multi-Party Computation

I also cleared 2 more first hits in approach-private-broadcasting.md at L97 and L111, so that file comes out clean rather than half fixed.

Notes on specific edits

GLOSSARY.md gets the canonical forms the repo already enforces. data availability becomes Data Availability. Multi-Party Computation becomes lowercase.

Two CHANGELOG.md lines are historical entries. I kept those edits minimal. chain-state-only resolution SNARK becomes resolution SNARK over chain state alone, and (warnings only) becomes (warnings, not errors). Meaning is unchanged in both.

first-class primitives becomes native primitives. The rest are sentence splits.

What this does not do

I ran Vale locally across the repo. There are 224 warnings in 97 files, and this PR clears 11 of them. The other 213 are not reported by CI, so master goes green without them.

Worth knowing before you decide on a wider sweep: 40 of the 196 EthSystems.Marketing hits are hyphenated compounds such as read-only, chain-state-only and first-class. Those are false positives. Marketing.yml matches on a word boundary, so a hyphen prefix still fires. Teaching the rule to skip hyphenated compounds would remove all 40 with no prose churn. That is a lint policy change, so I left it out of this PR.

Prompted by: ac

Master has been failing "Prose Quality (Vale)" on 9 findings. This clears those,
plus 2 more in the same file so it comes out clean.

- `EthSystems.Marketing` on "only" and "first" in `approach-private-broadcasting`,
  `approach-private-bonds`, `CONTRIBUTING.md` and two CHANGELOG entries
- `EthSystems.Terminology` in `GLOSSARY.md`: "data availability" becomes
  "Data Availability", "Multi-Party Computation" becomes lowercase, both per
  the repo's own canonical forms

Rewrites preserve meaning. Two CHANGELOG lines are touched, which are historical
entries, so the edits there are minimal.

Vale now reports 0 findings across all five files.
@rymnc
rymnc merged commit c760d40 into master Sep 9, 2026
4 checks passed
oskarth added a commit that referenced this pull request Sep 10, 2026
#195 lower-cased "MPC (Multi-Party Computation)" to satisfy an
EthSystems.Terminology swap that this branch removes. The glossary writes
"FHE (Fully Homomorphic Encryption)" and "TEE (Trusted Execution
Environment)" in title case on the lines around it, so the swap was
contradicting the glossary it claims to enforce. GLOSSARY.md also sits
outside the six directories the Vale job lints, so the edit was made to
clear a finding the job was never meant to report.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pAEx9anABeEhngGvF6qjZ
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".
rymnc pushed a commit to ethsystems/web that referenced this pull request Sep 11, 2026
Bumps the `content` submodule (ethsystems/map) from
[`1221c36`](ethsystems/map@1221c36)
to
[`b468053`](ethsystems/map@b468053)
— 10 commits, 9 new pages.

| Type | Added | PR |
| --- | --- | --- |
| Vendor | Bermuda | [#191](ethsystems/map#191)
|
| Vendor | Inco | [#177](ethsystems/map#177) |
| Vendor | Interfold |
[#194](ethsystems/map#194) |
| Vendor | The Graph |
[#193](ethsystems/map#193) |
| Pattern | Confidential Policy Verdicts |
[#183](ethsystems/map#183) |
| Pattern | Ephemeral Committees |
[#194](ethsystems/map#194) |
| Pattern | Private Geospatial Attestation |
[#184](ethsystems/map#184) |
| Pattern | Reproducible Audit Extraction |
[#193](ethsystems/map#193) |
| Pattern | Verifiable DKG & Threshold Decryption |
[#194](ethsystems/map#194) |

Also included: Privacy Pools deployment status/link correction
([#192](ethsystems/map#192)), 18 terminology
fixes across existing pages
([#188](ethsystems/map#188)), and Vale CI config
fixes ([#195](ethsystems/map#195),
[#196](ethsystems/map#196)).

Prompted by: ac

Co-authored-by: ethsystems-bot <321619048+ethsystems-bot@users.noreply.github.com>
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