PingCastle 4.0 documentation - #1270
Conversation
Adds Enterprise/Pro/Standard docs for PingCastle 4.0, registers the version in products.js as the new default, and removes the unsupported Azure hosting section from the Enterprise install guide now that deployment is Windows-only via the installer. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…r labels CloudAPI microservice and PingCastleSchedulerService replace the old Windows Task Scheduler model; docs and diagrams updated to match. Manual/Linux install and appsettings.json sections removed since Enterprise 4.0 is Windows Server + IIS + SQL Server only. Logging docs rewritten for the new web portal-based configuration. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…ork ports Co-Authored-By: Claude Sonnet 5 <[email protected]>
…NET version refs Expand quick install Step 2 in both tabs with the full wizard walkthrough (prerequisite check, license, install type, app pool identity, auth methods, HTTPS, email) and post-install gotchas; correct ASP.NET 8.0 references to 10.0. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Break the monolithic install page into architecture, requirements, auth setup, email setup, license, post-install, settings, and troubleshooting pages; update sidebar and cross-links accordingly. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Note deleted objects lack links, and list the two audit-log settings under Data Retention instead of just linking out. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Break out action plans, application, data retention, Entra scanner, and scanning/scheduling settings into dedicated pages; update related docs and sidebar links. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Link text still said "Settings: X" and "Enterprise Scheduling" from before the settings pages were split and renamed; update references to match the current page titles, and fill in the Entra tenant connection steps. Co-Authored-By: Claude Sonnet 5 <[email protected]>
… clarify 3.5-only migration Config migration content belongs with settings docs, not the upgrade guide; also flags the exe.config migration as a one-time 3.5 event.
…/Graph conflict Setup-EntraScannerApp.ps1 had several runtime bugs found while testing against a live tenant: wrong Add-RoleGroupMember param for EXO's cmdlet, missing Get-MgDirectoryRole module import, non-idempotent app role grants on reuse, EXO replication lag on the new service principal, and an Azure.Core version clash between Az.Resources and Microsoft.Graph in the same process. Also exports the generated self-signed cert as a .pfx. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…duler, and settings pages Captures 18 cropped screenshots (content panels only, no nav/sidebar chrome) for new PingCastle 4.0 pages and replaces their TODO markers.
|
| Category | Fixes |
|---|---|
| Dale: positional-references | 2 |
| Skipped (needs manual review) | Reason |
|---|---|
docs/pingcastle/4.0/enterpriseemailsetup.md:45 — Netwrix.TypeVsEnter |
'type' is used as a noun ('the credential type the app registration uses'), not the verb instructing a user to supply text. False positive. |
docs/pingcastle/4.0/enterpriseentrascan.md:118 — Netwrix.FirstPerson |
'my' is part of the literal, bolded Entra admin center menu label 'APIs my organization uses'. Rewriting would misname a UI element and break accuracy. |
docs/pingcastle/4.0/enterpriseentrascan.md:134 — Netwrix.FirstPerson |
'my' is part of the literal, bolded Entra admin center menu label 'APIs my organization uses'. Rewriting would misname a UI element and break accuracy. |
docs/pingcastle/4.0/enterprisesettings-entrascanner.md:13 — Netwrix.OxfordComma |
'request and client timeouts' is a single compound list item, not a three-item series. The list already has its Oxford comma before 'and circuit breaker thresholds'. Adding a comma would be incorrect. |
docs/pingcastle/4.0/enterprisetroubleshooting.md:177 — Netwrix.OxfordComma |
'Enterprise and CloudAPI' is a two-item pairing, not a series of three, so no Oxford comma applies. False positive. |
docs/pingcastle/4.0/enterpriseemailsetup.md:615 — Dale: exclamatory-sentences |
Exclamation is inside a PowerShell Write-Host string within a code block, not prose; changing it would alter the script output. |
docs/pingcastle/4.0/enterpriseemailsetup.md:622 — Dale: exclamatory-sentences |
Exclamation is inside a PowerShell Write-Host string within a code block, not prose; changing it would alter the script output. |
docs/pingcastle/4.0/enterpriseuser.md:9 — Dale: xy-slop |
'The goal of the tool isn't perfection, but to provide reliable data' uses the negative-positive form, but the contrast is intentional expectation-setting; rewriting would drop meaningful nuance. |
docs/pingcastle/4.0/proinstall.md:8 — Dale: xy-slop |
Same 'goal isn't perfection, but to provide reliable data' framing; the contrast conveys intended scope, so rewriting risks changing meaning. |
docs/pingcastle/4.0/prouser.md:11 — Dale: xy-slop |
Same 'goal ... wasn't to aim for perfection, but to provide reliable data' framing; intentional contrast, skipped to preserve meaning. |
Ask @claude on this PR if you'd like an explanation of any fix.
…reenshots Microsoft rebranded Azure AD to Entra ID; update terminology across enterprise/pro 4.0 docs and refresh accompanying screenshots to match current UI. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…nto JD/PingCastle-4-0
Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
| Category | Fixes |
|---|---|
| Dale: passive-voice | 9 |
| Dale: wordiness | 1 |
| Skipped (needs manual review) | Reason |
|---|---|
docs/pingcastle/4.0/enterpriseemailsetup.md:45 — Netwrix.TypeVsEnter |
False positive. 'The credential type' uses 'type' as a noun (a category of credential), not as an instruction to type text into a field. Changing to 'enter' would break the sentence. |
docs/pingcastle/4.0/enterpriseentrascan.md:118 — Netwrix.FirstPerson |
False positive. 'APIs my organization uses' is the literal UI menu label in the Entra admin center. Removing 'my' would misrepresent the actual UI string the user must click. |
docs/pingcastle/4.0/enterpriseentrascan.md:134 — Netwrix.FirstPerson |
False positive. 'APIs my organization uses' is the literal UI menu label in the Entra admin center. Removing 'my' would misrepresent the actual UI string the user must click. |
docs/pingcastle/4.0/enterprisesettings-entrascanner.md:13 — Netwrix.OxfordComma |
False positive. 'request and client timeouts' is a compound pair (request timeouts and client timeouts), not a third series item. The list already includes its Oxford comma before 'and circuit breaker thresholds'. |
docs/pingcastle/4.0/enterprisetroubleshooting.md:177 — Netwrix.OxfordComma |
False positive. 'If Entra ID scanning isn't available, Enterprise and CloudAPI aren't integrated correctly' is a conditional clause with a two-item subject ('Enterprise and CloudAPI'), not a three-or-more-item series requiring an Oxford comma. |
docs/pingcastle/4.0/enterpriseuser.md:9 — Dale: xy-slop |
'The goal of the tool isn't perfection, but to provide reliable data' — rephrasing to positive form would drop the intended 'not perfection' nuance; low confidence the meaning is preserved. Same construction also in proinstall.md:8 and prouser.md:11. |
docs/pingcastle/4.0/enterpriselicense.md:8 — Dale: passive-voice |
'Domain Controllers aren't counted for licensing purposes, only domains' — active rewrites either reintroduce a negative-positive contrast or shift the emphasis; not confident meaning is preserved. |
docs/pingcastle/4.0/enterprisepostinstall.md:337 — Dale: passive-voice |
'The Sync button is shown if the sync link is configured AND if the user has permission' — sentence contains multiple stacked passives and a conditional; restructuring risks altering the conditions. |
docs/pingcastle/4.0/enterprisepostinstall.md:314 — Dale: passive-voice |
Synchronization section describes system behavior with dense 'will be recomputed/forwarded' constructions; rewriting the interdependent clauses risks changing technical meaning. |
docs/pingcastle/4.0/enterpriseuser.md:235 — Dale: undefined-acronyms |
'CMMI methodology' used without expansion, but CMMI is an industry framework rather than a product-specific acronym; not confident the intended expansion is wanted. |
docs/pingcastle/4.0/prouser.md:24 — Dale: passive-voice |
prouser.md and proinstall.md contain dense legacy translated prose with many passive/awkward constructions; isolated fixes would leave surrounding text inconsistent and risk altering meaning. |
Ask @claude on this PR if you'd like an explanation of any fix.
…sages Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
| Category | Fixes |
|---|---|
| Dale: idioms | 6 |
| Dale: misplaced-modifiers | 2 |
| Dale: negative-assumptions | 1 |
| Dale: passive-voice | 193 |
| Dale: positional-references | 1 |
| Dale: undefined-acronyms | 2 |
| Dale: wordiness | 19 |
| Skipped (needs manual review) | Reason |
|---|---|
docs/pingcastle/4.0/enterpriseemailsetup.md:45 — Netwrix.TypeVsEnter |
False positive. 'type' is a noun in 'The credential type the app registration uses', not the verb instructing users to enter text. No fix needed. |
docs/pingcastle/4.0/enterpriseentrascan.md:118 — Netwrix.FirstPerson |
False positive. 'APIs my organization uses' is the literal UI tab label in the Entra admin center 'Add a permission' dialog. Rewriting 'my' would misrepresent the actual UI and break accuracy. |
docs/pingcastle/4.0/enterpriseentrascan.md:134 — Netwrix.FirstPerson |
False positive. 'APIs my organization uses' is the literal UI tab label in the Entra admin center 'Add a permission' dialog. Rewriting 'my' would misrepresent the actual UI and break accuracy. |
docs/pingcastle/4.0/enterprisesettings-entrascanner.md:13 — Netwrix.OxfordComma |
False positive. 'request and client timeouts' is a two-item compound (request timeouts and client timeouts), not a three-item series. The surrounding list already includes its Oxford comma before 'and circuit breaker thresholds'. |
docs/pingcastle/4.0/enterprisetroubleshooting.md:177 — Netwrix.OxfordComma |
False positive. 'Enterprise and CloudAPI' is a two-item subject; the comma after 'available' separates the conditional clause from the main clause, not a series of three items. |
docs/pingcastle/3.5/enterpriseinstall.md:285 — Dale: undefined-acronyms |
POC is common and 'proof-of-concept' is spelled out nearby; low confidence |
docs/pingcastle/3.5/enterpriseinstall.md:352 — Dale: minimizing-difficulty |
'simplest approach' compares configuration methods rather than minimizing task difficulty |
docs/pingcastle/3.5/enterpriseinstall.md:457 — Dale: idioms |
'middle ground' is widely understood and neutral; low confidence |
docs/pingcastle/3.5/enterpriseinstall.md:427 — Dale: passive-voice |
'when the solution is installed...and needs to scan' rewrite would break parallel structure and risk meaning change |
docs/pingcastle/3.5/enterpriseinstall.md:2389 — Dale: passive-voice |
'should be automatically configured' has unclear agent; rewrite risks wrong meaning |
docs/pingcastle/3.5/index.md:76 — Dale: passive-voice |
'ADWS is installed by default on Windows Server 2008 R2 and later' reads as a stative fact; active rewrite would be awkward |
docs/pingcastle/3.5/index.md:355 — Dale: passive-voice |
'reports must be transferred over unsecured channels' is a conditional requirement; rewrite risks meaning change |
docs/pingcastle/3.5/index.md:450 — Dale: passive-voice |
'This is primarily used with PingCastle Enterprise' has a vague subject; no confident active agent |
docs/pingcastle/3.5/index.md:653 — Dale: passive-voice |
'Release notes are now documented on GitHub' has no clean active agent |
docs/pingcastle/3.5/index.md:664 — Dale: passive-voice |
Passive inside the :::note Security Statement blockquote left unchanged per admonition/blockquote constraint |
docs/pingcastle/4.0/index.md:75 — Dale: passive-voice |
'ADWS is installed by default on Windows Server 2008 R2 and later' reads as a stative fact; active rewrite would be awkward |
docs/pingcastle/4.0/index.md:354 — Dale: passive-voice |
'reports must be transferred over unsecured channels' is a conditional requirement; rewrite risks meaning change |
docs/pingcastle/4.0/index.md:449 — Dale: passive-voice |
'This is primarily used with PingCastle Enterprise' has a vague subject; no confident active agent |
docs/pingcastle/4.0/index.md:663 — Dale: passive-voice |
Passive inside the :::note Security Statement blockquote left unchanged per admonition/blockquote constraint |
docs/pingcastle/4.0/enterpriseauditlog.md:14 — Dale: xy-slop |
'records one row per changed property, not one row per administrative action' is a legitimate clarifying contrast; rewrite risks meaning |
docs/pingcastle/4.0/enterpriseauthsetup.md:20 — Dale: passive-voice |
'can be provisioned automatically through JIT provisioning' active rewrite awkward |
docs/pingcastle/4.0/enterpriseauthsetup.md:28 — Dale: passive-voice |
'is enabled by default' / 'No additional configuration is required' are standard stative phrasing |
docs/pingcastle/4.0/enterpriseauthsetup.md:232 — Dale: passive-voice |
'must be isolated by a reverse proxy' in a security-critical danger admonition; left to preserve wording |
docs/pingcastle/4.0/enterpriseemailsetup.md:200 — Dale: passive-voice |
'This should be automatically configured' has no clear agent for active rewrite |
docs/pingcastle/4.0/enterpriseinstall.md:46 — Dale: passive-voice |
'the license file provided by Netwrix' is a common reduced noun modifier; low value and rewrite risks awkwardness |
docs/pingcastle/4.0/enterpriseinstall.md:165 — Dale: passive-voice |
'the account used by PingCastle Enterprise' is a reduced relative clause, not a clear full-passive construction |
docs/pingcastle/4.0/enterpriseinstall.md:115 — Dale: undefined-acronyms |
POC used but 'proof-of-concept' is spelled out elsewhere and POC is widely understood; ambiguous |
docs/pingcastle/4.0/enterpriseentrascan.md:141 — Dale: xy-slop |
'determines Teams authorization, rather than a fixed Graph permission list' is not the classic x-is-not-y-x-is-z pattern; rewrite risks meaning change |
docs/pingcastle/4.0/enterpriselicense.md:8 — Dale: passive-voice |
'Domain Controllers aren't counted for licensing purposes' active rewrite would require inventing an actor and risk xy-slop |
docs/pingcastle/4.0/enterpriselicense.md:9 — Dale: passive-voice |
'Licenses are bundled in packs of 10 domains' is a stative fact with no clear actor |
docs/pingcastle/4.0/enterprisepostinstall.md:163 — Dale: passive-voice |
'Entities are created at Configuration -> Entities' active rewrite would restructure the sentence; skipped conservatively |
docs/pingcastle/4.0/enterprisepostinstall.md:173 — Dale: passive-voice |
'is marked as insecure' / 'is no longer provided' have ambiguous actor |
docs/pingcastle/4.0/enterprisepostinstall.md:301 — Dale: undefined-acronyms |
FQDN is a widely known networking acronym closely related to DNS, not product-specific |
docs/pingcastle/4.0/enterprisepostinstall.md:46 — Dale: minimizing-difficulty |
'the simplest approach' is comparative/informative rather than the minimizers 'simply/just/easily' |
docs/pingcastle/4.0/enterprisesettings-dataretention.md:12 — Dale: passive-voice |
'user rows included in a generated HTML risk report' is a reduced adjective clause; rewrite would be awkward and risk meaning change |
docs/pingcastle/4.0/enterprisesettings-entrascanner.md:16 — Dale: undefined-acronyms |
OTLP appears only as a literal config option value in a parenthetical list; treated like a code/option literal |
docs/pingcastle/4.0/enterprisesettings-scim.md:46 — Dale: minimizing-difficulty |
'The connector type field is just a label' is a heading; skipped to avoid breaking the generated anchor and per heading-conservatism guidance |
docs/pingcastle/4.0/enterprisesettings-scim.md:42 — Dale: passive-voice |
'the risk of a stale account being reactivated or otherwise misused' rewrite risks altering meaning |
docs/pingcastle/4.0/enterpriseuser.md:9 — Dale: xy-slop |
'The goal...isn't perfection, but to provide reliable data' conveys meaningful expectation-setting; direct rewrite risked losing nuance |
docs/pingcastle/4.0/enterpriseuser.md:90 — Dale: passive-voice |
'what claims have been pushed to PingCastle Enterprise' has ambiguous pushing actor |
docs/pingcastle/4.0/enterpriseuser.md:312 — Dale: passive-voice |
Source sentence is grammatically broken; rewrite risked changing meaning |
docs/pingcastle/4.0/enterpriseuser.md:667 — Dale: passive-voice |
'a new trust...has been established/deleted/modified' describes external AD state changes with ambiguous actor |
docs/pingcastle/4.0/enterpriseuser.md:239 — Dale: passive-voice |
Terse maturity-measure bullets have ambiguous actor; rewrite risked altering the requirement's meaning |
docs/pingcastle/4.0/proinstall.md:8 — Dale: xy-slop |
'The goal...isn't perfection, but to provide' rewriting risks altering the intended contrast |
docs/pingcastle/4.0/proinstall.md:86 — Dale: passive-voice |
'the data...is pushed' / 'may be encrypted' have ambiguous actor |
docs/pingcastle/4.0/proinstall.md:232 — Dale: passive-voice |
'it will be stripped' / 'user won't be seen' have ambiguous actor |
docs/pingcastle/4.0/proinstall.md:269 — Dale: passive-voice |
Garbled source sentence; skipped to avoid altering meaning |
docs/pingcastle/4.0/proinstall.md:397 — Dale: idioms |
'take...in account' inside a garbled sentence; skipped |
docs/pingcastle/4.0/proinstall.md:518 — Dale: passive-voice |
'must be properly escaped' sentence contains delicate literal backslash/quote escapes; skipped |
docs/pingcastle/4.0/proinstall.md:631 — Dale: minimizing-difficulty |
'The easiest way' is a borderline superlative; skipped to avoid meaning change |
docs/pingcastle/4.0/proinstall.md:767 — Dale: passive-voice |
'additional logs can be stored' has ambiguous actor |
docs/pingcastle/4.0/proupgrade.md:31 — Dale: passive-voice |
'ASP.NET must be upgraded' lines appear to be broken table/data rows; skipped to avoid format damage |
docs/pingcastle/4.0/prouser.md:24 — Dale: passive-voice |
'such protections can be sometimes avoided' has ambiguous actor |
docs/pingcastle/4.0/prouser.md:122 — Dale: passive-voice |
Trust-event 'has been established/deleted/modified' describes descriptive event states with ambiguous actor |
Ask @claude on this PR if you'd like an explanation of any fix.
Documentation PR ReviewThis PR adds the PingCastle 4.0 Enterprise and Pro documentation set (24 new files) and applies sentence-level rewrites to two 3.5 files. The editorial review below covers added lines only. The 3.5 changes ( Editorial Reviewdocs/pingcastle/3.5/enterpriseinstall.md
docs/pingcastle/3.5/index.md
docs/pingcastle/4.0/enterprisearchitecture.md
docs/pingcastle/4.0/enterpriseauditlog.md
docs/pingcastle/4.0/enterpriseauthsetup.md
docs/pingcastle/4.0/enterpriseemailsetup.md
docs/pingcastle/4.0/enterpriseentrascan.md
docs/pingcastle/4.0/enterpriseinstall.md
docs/pingcastle/4.0/enterpriselicense.md
docs/pingcastle/4.0/enterprisepostinstall.md
docs/pingcastle/4.0/enterpriserequirements.md
docs/pingcastle/4.0/enterprisescheduling.md
docs/pingcastle/4.0/enterprisesettings.md
docs/pingcastle/4.0/enterprisesettings-actionplans.md
docs/pingcastle/4.0/enterprisesettings-application.md
docs/pingcastle/4.0/enterprisesettings-dataretention.md
docs/pingcastle/4.0/enterprisesettings-entrascanner.md
docs/pingcastle/4.0/enterprisesettings-logging.md
docs/pingcastle/4.0/enterprisesettings-scanningscheduling.md
docs/pingcastle/4.0/enterprisesettings-scim.md
docs/pingcastle/4.0/enterprisesettings-security.md
docs/pingcastle/4.0/enterprisetroubleshooting.md
docs/pingcastle/4.0/enterpriseupgrade.md
docs/pingcastle/4.0/enterpriseuser.md
docs/pingcastle/4.0/index.md
docs/pingcastle/4.0/proinstall.md
docs/pingcastle/4.0/proupgrade.md
docs/pingcastle/4.0/prouser.md
Summary37 editorial suggestions across 15 files (13 of the 28 changed files had no editorial issues). The most common themes are conversion artifacts in the new 4.0 files (orphaned auto-numbered items and flattened tables in What to do next: Comment
You can ask Claude anything about the review or about Netwrix writing standards.
|
|
| Category | Fixes |
|---|---|
| BoilerplateCrossRef (rewrite) | 2 |
| Contractions (rewrite) | 1 |
| Dale: idioms | 1 |
| Dale: minimizing-difficulty | 1 |
| Dale: passive-voice | 6 |
| Dale: wordiness | 2 |
| Skipped (needs manual review) | Reason |
|---|---|
docs/pingcastle/4.0/enterpriseemailsetup.md:45 — Netwrix.TypeVsEnter |
False positive. 'type' is used as a noun ('the credential type the app registration uses'), not as a verb instructing the user to type text. |
docs/pingcastle/4.0/enterpriseentrascan.md:118 — Netwrix.FirstPerson |
False positive. 'my' is part of the literal Entra admin center UI button label 'APIs my organization uses', which must be quoted verbatim. |
docs/pingcastle/4.0/enterpriseentrascan.md:134 — Netwrix.FirstPerson |
False positive. 'my' is part of the literal Entra admin center UI button label 'APIs my organization uses', which must be quoted verbatim. |
docs/pingcastle/4.0/enterprisesettings-entrascanner.md:13 — Netwrix.OxfordComma |
False positive. 'request and client timeouts' is a single list item (compound noun), and the outer series already has its Oxford comma ('timeouts, and circuit breaker thresholds'). |
docs/pingcastle/4.0/enterprisetroubleshooting.md:177 — Netwrix.OxfordComma |
False positive. 'Enterprise and CloudAPI' is a two-item subject following a conditional clause ('If Entra ID scanning isn't available, ...'), not a series of three or more items. |
docs/pingcastle/4.0/enterprisearchitecture.md:8 — Dale: wordiness |
'provides reliable data to present the situation to management, enabling continuous improvement over time' is slightly promotional but trimming risks altering meaning |
docs/pingcastle/4.0/enterpriseauthsetup.md:28 — Dale: passive-voice |
'is enabled by default' and 'No additional configuration is required' are established technical phrasing |
docs/pingcastle/4.0/enterprisepostinstall.md:46 — Dale: minimizing-difficulty |
'the simplest approach is using PowerShell' compares available methods rather than claiming the task is easy |
docs/pingcastle/4.0/enterprisepostinstall.md:378 — Dale: passive-voice |
'may be contained in an inner exception' is natural technical phrasing; active rewrite not clearly better |
docs/pingcastle/4.0/enterpriseentrascan.md:50 — Dale: xy-slop |
'The scanner is read-only — it doesn't write back changes' is clarification, not the negative-positive 'X is not Y, X is Z' framing |
docs/pingcastle/4.0/enterpriselicense.md:8 — Dale: passive-voice |
'Domain Controllers aren't counted for licensing purposes' has an unclear actor; active rewrite would be awkward |
docs/pingcastle/4.0/enterprisesettings-scim.md:48 — Dale: xy-slop |
explanatory clarification, not the prohibited negative-positive rewrite pattern |
docs/pingcastle/4.0/enterprisetroubleshooting.md:133 — Dale: negative-assumptions |
describes a technical consequence, not an assumption that the user cannot do something without the product |
docs/pingcastle/4.0/enterpriseuser.md:9 — Dale: xy-slop |
'The goal of the tool isn't perfection, but to provide reliable data...' is a meaningful mission statement; rewriting risks altering meaning |
docs/pingcastle/4.0/proinstall.md:8 — Dale: xy-slop |
genuine contrast in goal statement; conservative skip |
docs/pingcastle/3.5/enterpriseinstall.md:1421 — Dale: positional-references |
'Follow the preceding steps' refers backward to an immediately prior list; no clean anchor exists |
docs/pingcastle/3.5/enterpriseinstall.md:352 — Dale: minimizing-difficulty |
'the simplest approach is using PowerShell' is a comparative choice among methods, not a claim that the task is trivial |
docs/pingcastle/3.5/index.md:677 — Dale: idioms |
'in the hands of' appears inside a quoted Netwrix security statement blockquote; preserved to keep the quotation intact |
docs/pingcastle/4.0/enterpriseinstall.md:64 — Dale: passive-voice |
'the database isn't automatically removed' is established technical phrasing; active rewrite would be awkward |
Ask @claude on this PR if you'd like an explanation of any fix.
Code ReviewReviewed for correctness, build/routing, and CI concerns (documentation content/style excluded — handled separately). Scope of non-doc changes: Build & routing — no issues
|
Summary
Test plan
Closes #1278