Skip to content

vale dale remaining docs - #1419

Open
jth-nw wants to merge 8 commits into
devfrom
chore/vale-dale-remaining-docs
Open

vale dale remaining docs#1419
jth-nw wants to merge 8 commits into
devfrom
chore/vale-dale-remaining-docs

Conversation

@jth-nw

@jth-nw jth-nw commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@jth-nw
jth-nw requested a review from a team as a code owner August 24, 2026 17:08
@github-actions

Copy link
Copy Markdown
Contributor

Documentation PR Review

This PR is a broad passive-voice cleanup across the Password Policy Enforcer 11.2 set. Most rewrites are solid. The notes below cover added lines where the rewrite changed meaning, left a sentence incomplete, or created a new comprehension problem.

Editorial Review

docs/passwordpolicyenforcer/11.2/admin/cmdlets/cmdgetppeserverversion.md

  • Clarity — Line 19: The rewrite introduces the acronym "PPE," which is never expanded on this page (the page uses "Password Policy Enforcer server" at line 9 and "PPE Server" at line 17, but never defines the abbreviation). Suggested fix: "If you don't specify one, Password Policy Enforcer uses the current domain controller."

docs/passwordpolicyenforcer/11.2/admin/hibpupdater.md

  • Clarity — Line 137: The warning now reads "%SystemRoot%. Only read hash files from a local disk." The stray %SystemRoot%. fragment has no sentence around it, and the rewrite welds the new imperative directly onto it, so the reader can't tell whether the warning is about that path specifically. Suggested fix: drop the fragment — "Only read hash files from a local disk. Using shared hash files degrades performance and could jeopardize security."
  • Clarity — Lines 114 and 116: "If you select Website" and "If you select File" refer to the Location options, but the option is named Web Site at line 108, and neither name is bolded the way UI elements are elsewhere on the page. A reader scanning for "Website" won't find it in the interface. Suggested fix: "If you select Web Site, then clicking Apply downloads..." and "If you select File, then clicking Apply processes..."

docs/passwordpolicyenforcer/11.2/admin/manage-policies/rules/rules.md

  • Clarity — Line 54: "Tolerance is the maximum number of consecutive matching characters allowed between the password and another parameter." "Another parameter" is undefined at this point — the reader doesn't yet know what the password is being compared against. The example two sentences later supplies it, but the definition should stand on its own. Suggested fix: "Tolerance is the maximum number of consecutive characters a password can share with the value the rule compares it to, such as the user's logon name."

docs/passwordpolicyenforcer/11.2/admin/manage-policies/testpolicy.md

  • Clarity — Line 31: The rewrite moves "In this example" to the front, so lines 31 and 34 now both open with "In this example," while describing two different screenshots. Compounding it, line 31 follows its image but line 34 precedes its image, so the repeated opener makes it hard to tell which screenshot each paragraph describes. Suggested fix: "The password in the preceding screenshot fails because it doesn't meet the length requirement. A red x indicates the failure."

docs/passwordpolicyenforcer/11.2/admin/password-policy-client/configuring_the_password_policy_client.md

  • Clarity — Line 21: "Windows stores the Password Policy Client configuration in the HKLM\SOFTWARE\Policies\ANIXIS\Password Policy Client\ registry key." The active-voice rewrite assigns the action to Windows, but the surrounding paragraph is about the administrative template and GPOs — Group Policy is what writes that key. The registry path also isn't code-formatted. Suggested fix: "Group Policy writes the Password Policy Client configuration to the HKLM\SOFTWARE\Policies\ANIXIS\Password Policy Client\ registry key."

docs/passwordpolicyenforcer/11.2/admin/troubleshooting.md

  • Structure — Line 12: This paragraph is the first troubleshooting item, but unlike every other item in the file it has no #### heading, and the rewrite turned the symptom into a declarative statement of behavior: "PPE enforces a password policy assigned to some users for all users." A reader scanning the page now reads that as a description of how PPE works, not as the problem being solved. Suggested fix: add a heading and lead the body with the remedy — #### Password policy assigned to some users is enforced for all users, then "Check the Default Policy on the Password Policy Server (PPS) Properties page."
  • Clarity — Line 12: "PPE" is used before Password Policy Enforcer appears anywhere on the page (the product name is first spelled out at line 20). Suggested fix: use "Password Policy Enforcer" here, or spell out the acronym on first use.

docs/passwordpolicyenforcer/11.2/evaluation/creating-a-password-policy/policy_templates.md

  • Clarity — Line 24: The acronym is misspelled — "Health Insurance Portability and Accountability Act (HIPPA)" — while the same line and the sub-bullets below use the correct "HIPAA." A reader searching the page for HIPAA won't match the defining entry. Suggested fix: "Health Insurance Portability and Accountability Act (HIPAA) – The HIPAA Security Rule requires organizations to implement procedures for creating, changing, and safeguarding passwords."
  • Consistency — Line 30: Expanding NIST on first use is correct, but three later entries in the same list (lines 41–43) also spell out "National Institute of Standards and Technology (NIST)" in full, so the expansion now appears four times in one list. Suggested fix: keep the expansion here and shorten the later entries to "NIST Special Publication 800-171," "NIST Special Publication 800-53," and "NIST Special Publication 800-63b."

docs/passwordpolicyenforcer/11.2/evaluation/enforcing_multiple_policies.md

  • Clarity — Line 75: This note defines a policy assignment conflict as occurring "when more than one policy applies to a user," but the topic it links to now defines it as "when you assign more than one policy to a user" (usersgroups.md line 47). "Applies to" and "assigned to" aren't the same thing in PPE — conflict resolution is specifically about multiple assignments. Suggested fix: "...assignment conflicts that occur when you assign more than one policy to a user."

docs/passwordpolicyenforcer/11.2/evaluation/evaluation_overview.md

  • Clarity — Line 13: "...immediately rejects the password and details why it rejected the password." The rewrite repeats "the password" three times in one sentence and uses "details" as a verb. Suggested fix: "...immediately rejects the password and explains why."

docs/passwordpolicyenforcer/11.2/evaluation/improving_the_password_policy.md

  • Clarity — Line 9: "Password Policy Enforcer rules have properties that control how Password Policy Enforcer enforces them." The product name appears twice in one sentence, which makes the opening line of the topic harder to read than the passive original. Suggested fix: "Password Policy Enforcer rules have properties that control how strictly it enforces them."

docs/passwordpolicyenforcer/11.2/evaluation/preparing_the_computer.md

  • Completeness — Line 45: "Repeat Step 4 for the Maximum Password Age and Minimum Password Length policies." Step 4 is only "Enter 0 in the text box, then click OK" — to apply it to another policy the reader must first double-click that policy, which is Step 3. As written, the reader is told to type 0 into a dialog that isn't open. Suggested fix: "Repeat Steps 3 and 4 for the Maximum Password Age and Minimum Password Length policies."

docs/passwordpolicyenforcer/11.2/web-overview/editing_html_templates.md

  • Structure — Line 9: The topic now opens with "Netwrix built Password Policy Enforcer Web's user interface with customizable templates." This is a task topic about editing templates, so leading with who built the interface puts the emphasis on the wrong subject. Suggested fix: "Password Policy Enforcer Web's user interface uses customizable templates. Modify the user interface by editing the templates."
  • Clarity — Lines 122, 133, and 163: Three parallel sections now open with a bare filename as the sentence subject — "en_ppeweb.htm defines the validation error messages," "en_error.htm defines all the critical error messages," and "en_finished.htm defines this message." Two start a sentence with a lowercase token, and only one of the three is code-formatted, so the parallel sections no longer read as parallel. Suggested fix: add the noun and format all three consistently — "The en_ppeweb.htm file defines the validation error messages," "The en_error.htm file defines all the critical error messages," "The en_finished.htm file defines this message."
  • Consistency — Lines 14 and 78: "US English" became "the American English language" and "the American English files." "American English language" is redundant, and the filenames the section describes use the generic en_ prefix rather than a US-specific code. Suggested fix: "The files for US English are:" and "The examples in this section are from the US English files."

docs/passwordpolicyenforcer/11.2/web-overview/installationweb.md

  • Clarity — Lines 55–56: "You must back up and customized HTML templates and images before upgrading." The sentence is ungrammatical — "and" should be "any." Because the preceding clause was rewritten on the same line, this reads as a new error introduced by the change. Suggested fix: "Upgrading overwrites the HTML templates and associated images. You must back up any customized HTML templates and images before upgrading."

docs/passwordpolicyenforcer/11.2/web-overview/using_web.md

  • Clarity — Line 26: "Install the SSL Certificate the web server and use the HTTPS protocol if you use Password Policy Enforcer Web on an unencrypted network." The preposition is missing, so the instruction doesn't parse. Suggested fix: "Install the SSL certificate on the web server and use the HTTPS protocol if you use Password Policy Enforcer Web on an unencrypted network."

docs/passwordpolicyenforcer/11.2/web-overview/web_overview.md

  • Structure — Lines 24–25: The rewrite ends with "Use Password Reset if you need to:", but the bullets that follow don't complete that stem — the first one is "Users can reset a forgotten password or unlock their account...", which reads as a capability statement, not something the reader needs to do. Suggested fix: change the stem to "Use Password Reset if you need to:" followed by verb phrases ("Let users reset a forgotten password or unlock their account by answering questions..."), or change the stem to "Use Password Reset if you need any of the following:".

No issues found

  • docs/passwordpolicyenforcer/11.2/admin/manage-policies/manage_policies.md
  • docs/passwordpolicyenforcer/11.2/admin/manage-policies/messages.md
  • docs/passwordpolicyenforcer/11.2/admin/manage-policies/rules/dictionary_rule.md
  • docs/passwordpolicyenforcer/11.2/admin/manage-policies/usersgroups.md (the heading change at line 63 doesn't break any anchor links — no references to the old anchor exist in the repo)
  • docs/passwordpolicyenforcer/11.2/admin/password-policy-client/password_policy_client.md
  • docs/passwordpolicyenforcer/11.2/admin/ppe_tool.md
  • docs/passwordpolicyenforcer/11.2/evaluation/conclusion.md
  • docs/passwordpolicyenforcer/11.2/evaluation/configuring_policy_rules.md
  • docs/passwordpolicyenforcer/11.2/evaluation/creating-a-password-policy/creating_a_password_policy.md
  • docs/passwordpolicyenforcer/11.2/evaluation/installforeval.md
  • docs/passwordpolicyenforcer/11.2/evaluation/testing_the_password_policy.md
  • docs/passwordpolicyenforcer/11.2/index.md
  • docs/passwordpolicyenforcer/11.2/installation/installationclient.md
  • docs/passwordpolicyenforcer/11.2/installation/installationserver.md
  • docs/passwordpolicyenforcer/11.2/web-overview/configuration.md
  • docs/passwordpolicyenforcer/11.2/web-overview/securing_web.md

Summary

19 editorial suggestions across 15 files; 16 files clean. The highest-value fixes are the broken sentences at installationweb.md line 55 and using_web.md line 26, the incorrect step cross-reference at preparing_the_computer.md line 45, and the missing heading at troubleshooting.md line 12. Vale and Dale issues are auto-fixed separately.


What to do next:

Comment @claude on this PR followed by your instructions to get help:

  • @claude fix all issues — fix all editorial issues
  • @claude help improve the flow of this document — get writing assistance
  • @claude explain the voice issues — understand why something was flagged

You can ask Claude anything about the review or about Netwrix writing standards.

Automated fixes are only available for branches in this repository, not forks.

@github-actions

Copy link
Copy Markdown
Contributor

Auto-Fix Summary

47 issues fixed, 10 skipped across 31 files

Category Fixes
FirstPersonPlural (rewrite) 1
Dale: idioms 2
Dale: passive-voice 24
Dale: undefined-acronyms 1
Dale: wordiness 17
Dale: xy-slop 2
Skipped (needs manual review) Reason
docs/passwordpolicyenforcer/11.2/admin/hibpupdater.md:9 — Netwrix.FirstPerson False positive. The 'I' is part of the proper name of a third-party database, 'Have I Been Pwnd (HIBP)'. Rewriting would corrupt the product name.
docs/passwordpolicyenforcer/11.2/admin/manage-policies/rules/rules.md:42 — Netwrix.FirstPerson False positive. The 'I' is a table cell in a character-substitution reference table (letter I maps to !,
docs/passwordpolicyenforcer/11.2/web-overview/installationweb.md:31 — Netwrix.FirstPerson False positive. The 'I' is inside a literal UI control label the reader must click: I accept the terms of the license agreement. UI strings must match the product exactly.
docs/passwordpolicyenforcer/11.2/admin/hibpupdater.md:37 — Dale: misplaced-modifiers "Requires a working network connection from the Domain Controllers to the Network Share with Read permissions to check:" - unclear whether "with Read permissions" modifies the connection, the share, or the domain controllers; any rewrite would guess at the intended meaning
docs/passwordpolicyenforcer/11.2/admin/manage-policies/testpolicy.md:90 — Dale: wordiness The first bullet is really a lead-in sentence for the list that follows; fixing it is a structural change beyond a style fix
docs/passwordpolicyenforcer/11.2/admin/troubleshooting.md:12 — Dale: wordiness "PPE enforces a password policy assigned to some users for all users." appears to be a symptom heading that lost its heading markup; rewriting would guess at the author's intent
docs/passwordpolicyenforcer/11.2/admin/troubleshooting.md:78 — Dale: passive-voice Heading "Passwords that are accepted in the Test Policies page are rejected during a password change" is passive, but every active rewrite reads worse and breaks parallelism with the other three symptom headings in the file
docs/passwordpolicyenforcer/11.2/admin/password-policy-client/configuring_the_password_policy_client.md:45 — Dale: positional-references "see the topic's section for additional information" has no identifiable target section, so no correct anchor or link text can be supplied
docs/passwordpolicyenforcer/11.2/admin/ppe_tool.md:82 — Dale: wordiness "This file has root elements which name match each file name." is garbled; the intended meaning is unclear
docs/passwordpolicyenforcer/11.2/evaluation/conclusion.md:10 — Dale: minimizing-difficulty "almost any password policy imaginable" is promotional but is a capability claim rather than a claim that a task is easy

Ask @claude on this PR if you'd like an explanation of any fix.

@jth-nw
jth-nw requested a review from a team as a code owner August 24, 2026 20:43
scripts/check-anchors.sh stripped underscores when slugifying headings,
disagreeing with the github-slugger algorithm Docusaurus actually uses
(which keeps underscores). The vale-dale autofix trusted this checker
and rewrote anchor links like #customize-analysis-tasks-for-the-
box_filemetrics-job to .../boxfilemetrics-job across accessanalyzer
11.6 and 12.0 docs, satisfying the buggy local check but breaking the
real Docusaurus build (~140+ broken anchors, causing the build-and-
deploy job to fail).

Fix the slugify regex to keep underscores, and restore the underscores
in every anchor link the autofix stripped.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
scripts/vale-autofix.sh had its own slugify() that diverged from
github-slugger (used by Docusaurus): it stripped underscores and
collapsed/trimmed hyphens, neither of which github-slugger does. This
is the same class of bug just fixed in scripts/check-anchors.sh, and
it lives in update_heading_anchors(), the function that auto-rewrites
anchor links in vale-autofix.yml's "Fix heading anchors" step whenever
a heading is renamed — so a future underscore-containing heading
rename would silently compute the wrong new anchor and reproduce this
PR's original failure.

Also corrects two now-incorrect expectations in test-slugify.sh that
had encoded the old (wrong) hyphen-collapsing behavior.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jth-nw
jth-nw deployed to development August 24, 2026 23:15 — with GitHub Actions Active
…ests

_word_overlap_score() in vale-autofix.sh counted empty array elements
(produced by uncollapsed hyphen runs after the earlier slugify fix) in
its maxlen denominator, deflating scores enough to push real heading
renames below the match threshold — silently skipping an anchor repair
that used to work.

Also extracts the duplicated slugify() (previously hand-synced between
vale-autofix.sh and check-anchors.sh, and the source of two rounds of
the same underscore bug) into a single scripts/lib/slugify.sh both
scripts source. test-slugify.sh now tests that shared implementation
directly instead of only vale-autofix.sh's copy.

Wires scripts/test-slugify.sh and scripts/test-anchor-update.sh into
CI (new `npm run test:scripts`, run as a step in vale-autofix.yml) so
regressions in either script are caught automatically instead of only
by manual review.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.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.

1 participant