Skip to content

fix(compliance): verbatim LF trademark statement, plus the 2.0.0 terminology audit corrections - #13

Merged
chideat merged 2 commits into
masterfrom
fix/trademark-statement
Sep 7, 2026
Merged

fix(compliance): verbatim LF trademark statement, plus the 2.0.0 terminology audit corrections#13
chideat merged 2 commits into
masterfrom
fix/trademark-statement

Conversation

@chideat

@chideat chideat commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Two independent changes, one commit each. Review them separately.

1. Trademark statement (1223e1d)

The intro page carried the valkey.io sentence "Valkey and the Valkey logo are trademarks of LF Projects, LLC." The ACP component compliance rules require a specific two-paragraph statement reproduced verbatim in English, plus ® at the first usage of the mark. The operator listing fields were corrected for the same reason and merged to release-2.0; this brings the documentation site in line with them, byte for byte.

Three points worth reviewer attention:

  • Why the intro page and not a site-wide footer. doom passes themeConfig through to rspress, but rspress renders footer.message only in HomeFooter, and this site has no home layout. A per-page footer would mean overriding theme/index.ts. If the compliance owner insists on every page, that is the follow-up.
  • The Chinese site. It is machine-translated at build time, and the previous build translated the statement and dropped the English paragraphs, which the rules do not allow. The page now carries an i18n.additionalPrompts instruction that keeps the English verbatim and appends the Chinese rendering already shipped in the listing, copied rather than re-translated, so the two surfaces cannot drift apart on each build.
  • That path is code-verified, not run. Local Azure deployments are gpt-5 series and reject the temperature: 0.2 that doom hardcodes, and the shared gateway rejected the key. doom's prompt template also ranks its baseline instructions above additional ones, so the instruction can be ignored by the model. Someone must check the published Chinese intro page after release. A proper no-translate marker in doom would remove the doubt; worth raising upstream.

The three authoring policies under agent/ prescribed the superseded sentence and the symbol, so new text would have reproduced them.

2. Terminology corrections (ad185ae)

A terminology review of all 35 pages against agent/TERMINOLOGY.md, with every identifier verified against the operator at release-2.0 and the container source pinned by its image tags.

The one finding that changes what an operator does. Three passages told the reader that CONFIG GET redacts a set requirepass or primaryauth value, with no version qualifier. On 7.2 the directive is registered as masterauth with no alias; only 8.1 and 9.1 register primaryauth, with masterauth as its alias:

valkey/7.2/alpine/80_alauda_crypto.patch:146
  createSpecialConfig("masterauth", NULL, MODIFIABLE_CONFIG | SENSITIVE_CONFIG, ...)

valkey/8.1/alpine/80_alauda_crypto.patch:147   (9.1 at :146)
  createSpecialConfig("primaryauth", "masterauth", MODIFIABLE_CONFIG | SENSITIVE_CONFIG, ...)

A 7.2 operator following those passages to confirm that replication credentials are not exposed queries a directive that does not exist on their line and reads the empty result as "nothing set, nothing to check", while the credential is in fact held by masterauth. The redaction itself works on all three lines, so nothing unsafe is configured; the verification simply fails silently on one third of the supported matrix. All three passages now name the directive per line, and the evidence is recorded in agent/ARCHITECTURE_FACTS.md.

The remaining corrections remove ambiguity rather than change a conclusion:

Change Sites
"node" reserved for Kubernetes nodes; Valkey processes are members 4
"cross-cluster" qualified as "cross-Kubernetes-cluster" 4
Navigation labels: Troubleshooting, How-to guides, Feature guides 3
Standard names written as proper names: RFC 3339, IPv4, IPv6, IP family 5

The abbreviation rule is recorded in agent/TECHNICAL_WRITING_POLICY.md, naming both the abbreviations expanded at first use (ACL, PVC, CRD, CA) and those never expanded, because the mechanical scan flags an unexpanded acronym and would otherwise drive a revert.

One reported finding was withdrawn rather than applied. It claimed the forbidden-directive list omitted ignore-warnings. That entry is commented out in internal/builder/config.go and is therefore not filtered at all; the documented list matches the 39 active entries in both membership and order. Applying the recommendation would have introduced the error it claimed to fix.

Verification

  • yarn lint — 0 errors, 0 warnings.
  • yarn build — no warnings. The ## Trademarks section reaches the rendered page, llms-full.txt, and the search index, byte-identical to the merged listing. All three per-line credential sentences and the three new navigation labels render correctly. The translation instruction does not leak into output.
  • Residue greps clean for data-node, node recovery, bare cross-cluster, Request for Comments, Internet Protocol.
  • Not verified: the Chinese build, for the reason given above.

After merge

Cherry-pick both commits to release-2.0, which is what builds the live 2.0 site, then check the published Chinese intro page.

🤖 Generated with Claude Code

…mark

The intro page footer carried the valkey.io sentence "Valkey and the Valkey
logo are trademarks of LF Projects, LLC." The ACP component compliance rules
require a specific two-paragraph statement, reproduced verbatim in English,
and the ® symbol at the first usage of the mark. The operator listing fields
were corrected for the same reason; this brings the documentation site in
line with them, byte for byte.

The statement goes in a `## Trademarks` section on the intro page rather than
a site-wide footer: doom passes `themeConfig` through to rspress, but rspress
renders `footer.message` only in HomeFooter, and this site has no home layout.

The Chinese site is machine-translated at build time, and the previous build
translated the statement and dropped the English paragraphs entirely, which
the rules do not allow. The page now carries an `i18n.additionalPrompts`
instruction that keeps the English verbatim and appends the Chinese rendering
already shipped in the listing, copied rather than re-translated, so the two
surfaces cannot drift. That path is verified by reading the translator's
prompt assembly, not by running it; the published Chinese page still needs a
check after release.

The three authoring policies under agent/ prescribed the superseded sentence
and the ™ symbol, so new text would have reproduced them.
A terminology review of all 35 pages against agent/TERMINOLOGY.md returned one
finding that changes what an operator does, three that remove ambiguity, and
one house-style call.

The replication credential directive is not spelled the same on every supported
server line. Three passages told the reader that `CONFIG GET` redacts a set
`requirepass` or `primaryauth` value, with no version qualifier. On 7.2 the
directive is registered as `masterauth` with no alias; only 8.1 and 9.1
register `primaryauth`, with `masterauth` as its alias. A 7.2 operator
following those passages to confirm that replication credentials are not
exposed queries a directive that does not exist on their line and reads the
empty result as "nothing set", while the credential is in fact held by
`masterauth`. All three passages now name the directive per line, and the
evidence is recorded in agent/ARCHITECTURE_FACTS.md so a later edit cannot drop
the version scope.

The remaining corrections:

- "node" is reserved for Kubernetes nodes. Four places used it for a Valkey
  process on pages that also discuss scheduling, anti-affinity, and node
  selectors, where the word means a machine.
- "cross-cluster" is qualified as "cross-Kubernetes-cluster". Unqualified, in
  a product whose architecture is named Cluster, it can be read as replication
  across the shards of a Valkey Cluster.
- Navigation labels: "Troubleshooting" is one word, and the two guide sections
  are now distinguished in English the way the Chinese labels already were.
- Standard protocol and standards-body names are written as the proper names
  they are: RFC 3339, IPv4, IPv6, IP family. The rule is recorded in
  agent/TECHNICAL_WRITING_POLICY.md, naming both the abbreviations that are
  expanded at first use and those that never are, because the mechanical scan
  flags an unexpanded acronym and would otherwise drive a revert.

One reported finding was withdrawn rather than applied. It claimed the
forbidden-directive list omitted `ignore-warnings`; that entry is commented out
in internal/builder/config.go and is therefore not filtered. The documented
list matches the 39 active entries in membership and order, so the change would
have introduced the error it claimed to fix.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying alauda-valkey with  Cloudflare Pages  Cloudflare Pages

Latest commit: ad185ae
Status: ✅  Deploy successful!
Preview URL: https://d34eafb5.alauda-valkey.pages.dev
Branch Preview URL: https://fix-trademark-statement.alauda-valkey.pages.dev

View logs

@chideat

chideat commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator Author

Paired with #14, which cherry-picks both commits onto release-2.0. That is the branch the live 2.0 site builds from, so #13 alone does not change anything published. Both applied without conflict and the two branches hold identical trees under docs/ and agent/. Merging one without the other leaves the two lines out of step.

@chideat
chideat added this pull request to the merge queue Sep 7, 2026
Merged via the queue into master with commit a5d351d Sep 7, 2026
3 checks passed
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