Skip to content

Commit 93451a7

Browse files
Merge remote-tracking branch 'origin/dev'
2 parents 9b4d631 + 1f998ce commit 93451a7

File tree

4 files changed

+363
-6
lines changed

4 files changed

+363
-6
lines changed

.claude/hooks/post-edit-dale.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ if [ "$BASENAME" = "CLAUDE.md" ] || [ "$BASENAME" = "SKILL.md" ] || [ "$BASENAME
2929
exit 0
3030
fi
3131

32-
# Skip KB articles — they have their own style conventions
33-
if [[ "$FILE_PATH" == */docs/kb/* ]] || [[ "$FILE_PATH" == docs/kb/* ]]; then
34-
exit 0
35-
fi
36-
3732
# Output a context message that Claude will see
3833
jq -n --arg file "$FILE_PATH" '{
3934
hookSpecificOutput: {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
message: "Acronym used without being defined on first use. Spell it out: 'Full Name (ACRONYM)'."
2+
level: warning
3+
reason: "This rule should trigger when a product-specific or non-standard acronym is used without being spelled out on first use in body prose, following the pattern: 'File System Access Audit (FSAA)' on first use, then 'FSAA' thereafter. Do NOT flag: well-known IT industry standards that a sysadmin audience would know (DNS, AD, IP, HTTP, TCP, SID, UID, CPU, RAM, URL, SQL, OS, VM, API, SSH, SSL, TLS, LDAP, SAML, MFA, ACL, DACL, SACL, OU, GPO, etc.); code literals in backticks; Netwrix product short names when the full product name has already appeared in the article; acronyms that appear only in headings or titles (define-on-first-use applies to body prose only). Do flag product-specific acronyms like AIC, FSAA, SPAA, CEE, AMQP when used in body text without prior definition, even if the article's title or subject implies the reader knows them."

docs/kb/accessanalyzer/connection-profiles-and-credentials/connection-profile-credential-selection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Netwrix Access Analyzer tries to match the domain in the **Account** column in t
3030
1. The Target Host's `WindowsDomain`, as visible in **Host Management**.
3131
2. The Target Host's `DNSDomain`, as visible in **Host Management** (only if the Target Host's `WindowsDomain` value is blank).
3232

33-
If neither match, Netwrix Access Analyzer will attempt each credential in the Connection Profile in the order listed within the Connection Profile.
33+
If neither matches, Netwrix Access Analyzer attempts each credential in the Connection Profile in the listed order.
3434

3535
## Product / Module / Legacy ID
3636
- **Product:** Netwrix Access Analyzer

kb_style_guide.md

Lines changed: 359 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,359 @@
1+
# Netwrix KB Style Guide
2+
3+
This guide establishes writing standards for Netwrix Knowledge Base (KB) articles. KB articles are written by Technical Support Engineers (TSEs) and live in `docs/kb/<product>/` in the documentation repository.
4+
5+
This guide is enforced by the `derek` linter skill (`/derek <kb-file>`).
6+
7+
> **Important for documentation contributors:** This guide conflicts with the Netwrix docs style guide (`netwrix_style_guide.md`) on two points — contractions and heading case. Do not apply docs style guide rules to KB articles. Do not run `/dale` on KB files.
8+
9+
| Topic | KB rule | Docs rule |
10+
|---|---|---|
11+
| Contractions | Write out in full: "do not", "cannot", "you will" | Use contractions: "don't", "can't", "you'll" |
12+
| Heading case | Title case (Chicago style) | Sentence case |
13+
14+
---
15+
16+
## Article Types
17+
18+
KB articles follow one of two primary types.
19+
20+
### How-To Articles
21+
22+
How-to articles provide step-by-step guidance for accomplishing specific tasks.
23+
24+
**Title format:** `[Action Gerund] [Specific Task]` — start with a gerund, no "How to" prefix, no question mark.
25+
26+
- Good: `Modifying SSRS Report Timeouts`
27+
- Good: `Auditing a Non-trusted Domain`
28+
- Bad: `How to Modify SSRS Report Timeouts?` (starts with "How to", ends with question mark)
29+
- Bad: `Auditing a non-trusted domain` (sentence case)
30+
31+
**Formats:**
32+
33+
- **Instructions format** — for complex procedures: sections are `## Overview` and `## Instructions`
34+
- **Question and Answer format** — for simple procedures: sections are `## Question` and `## Answer`
35+
36+
### Resolution Articles
37+
38+
Resolution articles help customers troubleshoot specific errors or unexpected behavior.
39+
40+
**Error Resolution** — for specific error codes or messages.
41+
42+
- Title format: `Error: [Unique Error Code/Message]`
43+
- Include only the most unique part of the error message in the title. If the error message itself contains the word "error," do not start the title with "Error:".
44+
- Good: `Error: Event Collection Failed 0x80004005`
45+
- Bad: `Error: Can't Process Request` (too generic)
46+
47+
**Symptom Resolution** — for unexpected behavior that does not produce an explicit error.
48+
49+
- Title format: `[Feature or Component] [Symptom or Issue] [Optional: Condition or Context]`
50+
- Good: `Active Directory Users Missing from Search Results`
51+
- Bad: `AD not working right` (too vague)
52+
53+
Both resolution article formats use sections: `## Symptom` (or `## Symptoms`), `## Cause` (or `## Causes`), `## Resolution` (or `## Resolutions`).
54+
55+
---
56+
57+
## Article Structure
58+
59+
### Section limits
60+
61+
Articles should not exceed five main H2 headings.
62+
63+
### Optional sections for all article types
64+
65+
**Related Query / Related Queries** — place as the first section when applicable. Include exact wording from customer support ticket subjects (correcting only typos). Helps with searchability and surfaces real customer language.
66+
67+
**Related Links** — place at the end. List all relevant links referenced in the article.
68+
69+
### Heading hierarchy
70+
71+
- The article title is always H1 (`#`)
72+
- Main section headings are H2 (`##`)
73+
- Subsections are H3 (`###`) and H4 (`####`)
74+
- Do not skip heading levels
75+
76+
---
77+
78+
## Article Titles
79+
80+
- **Use title case.** Use [capitalizemytitle.com](https://capitalizemytitle.com/) (Chicago style) if you are unsure.
81+
- **Do not include product names in titles.** Product names belong in the `products` frontmatter field.
82+
- **Use keywords customers will search for,** especially words from customer ticket subjects.
83+
- **Include unique identifiers** like error codes.
84+
- **Avoid vague or generic titles.** The clearer the title, the more findable it is.
85+
86+
---
87+
88+
## Voice and Tone
89+
90+
### General principles
91+
92+
- Use second person ("you") when addressing the reader.
93+
- Write in active voice rather than passive voice.
94+
- Do: "The agent collects the log."
95+
- Do not: "The log is collected by the agent."
96+
- Be direct, clear, and concise.
97+
- Maintain a professional but approachable tone.
98+
- Do not use humor — it rarely translates across cultures.
99+
100+
### Words and phrases to avoid
101+
102+
- **Minimize difficulty:** Do not use "simply," "just," "easily," "basically," or "obviously." These minimize the difficulty of what the reader is trying to do.
103+
- Do: "Configure the monitoring plan."
104+
- Do not: "Simply configure the monitoring plan."
105+
106+
- **"Please":** Do not use "please" in instructions. Be direct.
107+
- Do: "Enter your credentials."
108+
- Do not: "Please enter your credentials."
109+
110+
- **Inline "note that" / "please note":** Do not use these inline in body text. Use a blockquote callout instead.
111+
- Do: `> **NOTE:** The redirect URI is case-sensitive.`
112+
- Do not: "Note that the redirect URI is case-sensitive."
113+
- Do not: "Please note that the redirect URI is case-sensitive."
114+
115+
- **Impersonal constructions:** Avoid "it is recommended," "it is necessary," "it is possible," "it is required," "it is advised," and "it is suggested." Rewrite with an active subject or a direct imperative.
116+
- Do: "Netwrix recommends running the server as an IIS website."
117+
- Do: "Restrict the maximum server memory value to prevent performance issues."
118+
- Do not: "It is recommended to run the server as an IIS website."
119+
- Do not: "It is necessary to restrict the maximum server memory value."
120+
121+
- **Business jargon:** Do not use "utilize" or "utilise" (use "use"), "leverage" as a verb in non-financial contexts, or "synergy."
122+
123+
- **Colloquialisms and idioms:** Avoid phrases that may not translate across cultures (for example, use "stop loading" instead of "hang").
124+
125+
### Jargon and acronyms
126+
127+
Define technical terms and acronyms on first use. Do not assume the reader knows product-specific abbreviations.
128+
129+
- Do: "Configure the File System Access Audit (FSAA) monitoring plan. FSAA collects data from file servers."
130+
- Do not: "Configure the FSAA monitoring plan."
131+
132+
---
133+
134+
## Contractions
135+
136+
**Write contractions out in full.** This is a KB-specific rule that differs from the Netwrix docs style guide.
137+
138+
- Do: "do not", "cannot", "you will", "it is", "there is", "that is", "is not", "are not", "was not", "were not", "has not", "have not", "had not", "does not", "did not", "would not", "should not", "could not"
139+
- Do not: "don't", "can't", "you'll", "it's", "there's", "that's", "isn't", "aren't", "wasn't", "weren't", "hasn't", "haven't", "hadn't", "doesn't", "didn't", "wouldn't", "shouldn't", "couldn't"
140+
141+
---
142+
143+
## Article Length
144+
145+
- Focus on one topic per article.
146+
- Place the most important information first.
147+
- Keep paragraphs to 3–4 sentences maximum.
148+
- Use bullet points and numbered lists for readability.
149+
- One idea per paragraph.
150+
- Use meaningful subheadings every 200–300 words.
151+
152+
---
153+
154+
## Headings and Subheadings
155+
156+
- **Use title case.** This is a KB-specific rule that differs from the Netwrix docs style guide, which uses sentence case.
157+
- Capitalize all words except: articles (a, an, the), coordinating conjunctions (and, but, or, nor, for, so, yet), and prepositions of four letters or fewer (in, on, at, by, for, to, up, as, of, off, per) — unless they open or close the heading.
158+
- Capitalize prepositions that are part of a phrasal verb (for example, "Set Up", "Log In").
159+
- Use [capitalizemytitle.com](https://capitalizemytitle.com/) (Chicago style) to check.
160+
- Avoid passive voice in headings.
161+
- Avoid punctuation marks in headings.
162+
- H2 for main article sections. H3 and H4 for subsections. Do not skip levels.
163+
164+
---
165+
166+
## Frontmatter
167+
168+
All KB articles must begin with a frontmatter block.
169+
170+
### Required fields
171+
172+
| Field | Description |
173+
|---|---|
174+
| `title` | The full article title, as a quoted string. Must match the H1 heading exactly. |
175+
| `description` | A short, SEO-friendly summary (1–2 sentences). Use `>-` for multiline values. |
176+
| `sidebar_label` | Matches the article title. May be shortened if the title is very long. |
177+
| `keywords` | 8–12 relevant technical and product search terms, as a YAML list. |
178+
| `products` | One or more product IDs from the product names table, as a YAML list. |
179+
| `tags` | YAML list. **Must include `kb`.** See note below. |
180+
| `knowledge_article_id` | The Salesforce Knowledge Article ID. Format: `kA` followed by alphanumeric characters (for example, `kA0Qk000000XXXXKAA`). |
181+
182+
### The `tags: [kb]` requirement
183+
184+
The wiki KB style guide marks `tags` as optional. **This is overridden for the Netwrix documentation repository.** The `tags` field must be present and must include `kb` for all KB articles.
185+
186+
This requirement exists because Algolia (the site's search provider) indexes the `tags` field automatically. Including `kb` in every KB article's tags enables KB-specific filtering in search results. No Algolia configuration changes are required — the crawler picks up the field automatically.
187+
188+
### Example frontmatter block
189+
190+
The following example shows a Symptom Resolution article.
191+
192+
```yaml
193+
---
194+
description: >-
195+
When the 2-FSAA Bulk Import job returns a SQL logic error, the database
196+
structure map is likely corrupted. This article describes causes and
197+
provides two resolutions.
198+
keywords:
199+
- bulk import
200+
- SQL logic error
201+
- strucmap
202+
- 2-FSAA
203+
- FileSystem
204+
- reset hosts
205+
- repair database
206+
- Netwrix Access Analyzer
207+
- NEA
208+
products:
209+
- enterprise_auditor
210+
sidebar_label: 'Bulk Import Error: SQL Logic Error Unknown Database Strucmap'
211+
tags:
212+
- kb
213+
title: "Bulk Import Error: SQL Logic Error Unknown Database Strucmap"
214+
knowledge_article_id: kA0Qk0000001msDKAQ
215+
---
216+
```
217+
218+
---
219+
220+
## Punctuation
221+
222+
Follow Chicago Manual of Style (CMOS) for all punctuation.
223+
224+
- **Serial comma:** Use a comma before "and" or "or" in a series of three or more items.
225+
- **Contractions:** Write out in full (see Contractions section above).
226+
- **Exclamation marks:** Avoid, even in warnings.
227+
- **Colons:** Use only at the end of complete sentences to introduce lists or explanations. Capitalize the first word after a colon only if it begins a complete sentence.
228+
- **Semicolons:** Use to separate closely related independent clauses, or to separate complex list items that contain commas.
229+
- **Hyphens:** Use for compound modifiers before nouns (for example, "well-known feature").
230+
- **En dashes:** Use for ranges (for example, "pages 10–15").
231+
- **Em dashes:** Use for abrupt changes in thought or emphasis. Do not add spaces around em dashes.
232+
- **Parentheses:** Use sparingly for supplementary information that would interrupt the main text.
233+
- **List items:** End each item with consistent punctuation. If items are complete sentences, end with a period. If items are fragments, omit periods from all items.
234+
235+
---
236+
237+
## Markup Conventions
238+
239+
- `##`, `###`, `####` for H2, H3, H4 headings (the article title is always H1)
240+
- `[Link text](URL)` for hyperlinks
241+
- `![alt text](image_url)` for images
242+
- `1.` for ordered lists, `-` or `*` for unordered lists
243+
- Fenced code blocks (triple backticks) for block-level code, commands, error messages, and paths to be copied. Specify the language after the opening backticks when possible.
244+
- Single backticks for inline code when content does not need to be copied
245+
- `**bold**` for UI elements, buttons, menu items, tabs, checkboxes, dropdown options, navigation steps, and form field names
246+
- Blockquote callouts for notes and warnings:
247+
248+
```markdown
249+
> **NOTE:** Supplementary information the reader should be aware of.
250+
251+
> **IMPORTANT:** Critical information that could cause issues if ignored.
252+
```
253+
254+
Do not use inline "note that" or "please note" in body text. Use a blockquote callout instead.
255+
256+
---
257+
258+
## Links
259+
260+
### Internal links
261+
262+
- Do not use generic link text such as "click here," "read more," "learn more," "see more," or "this link." Write text that describes where the link goes.
263+
- Do: `See [Configuring the Data Collection Account](../config.md) for setup steps.`
264+
- Do not: `Click [here](../config.md) for details.`
265+
- Link to the latest version of any referenced article.
266+
- When referring to a subsection, name the subsection and its parent section.
267+
268+
### External links
269+
270+
Format external links with a middot and arrow after the company name:
271+
272+
```markdown
273+
[SMB Security Enhancements ⸱ Microsoft 🡥](https://learn.microsoft.com/en-us/windows-server/storage/file-server/smb-security)
274+
```
275+
276+
---
277+
278+
## Screenshots
279+
280+
- Use red rectangles only for markup. No arrows, circles, or highlights.
281+
- No more than two shapes per screenshot.
282+
- Add descriptive alt text to all images. Alt text formula: `[Action being shown] + [Key UI elements visible]`.
283+
- Example: `Dialog box for selecting monitoring plan settings with the Schedule tab active`
284+
- Write all steps clearly in the article body. The article must be followable without screenshots.
285+
- Images work poorly inside lists due to platform formatting constraints. Place images after the list ends where possible.
286+
287+
---
288+
289+
## Lists
290+
291+
- Capitalize the first word of each list item.
292+
- Use consistent punctuation across all items: either all items end with a period, or none do.
293+
- Use unordered lists for unordered recommendations or options.
294+
- Use ordered lists for sequential steps.
295+
- Minimize nesting. Second-level lists are rarely needed — start a new paragraph instead.
296+
297+
---
298+
299+
## Accessibility
300+
301+
- Maintain a logical heading structure. Do not skip heading levels.
302+
- Use descriptive link text (see Links section).
303+
- Add alt text to all images (see Screenshots section).
304+
- Do not use color alone to convey meaning.
305+
306+
---
307+
308+
## AI Retrieval Optimization
309+
310+
- Define technical terms clearly on first use.
311+
- Use consistent terminology throughout — do not use synonyms for technical terms.
312+
- Create logical, self-contained sections that can be understood independently.
313+
- Use descriptive subheadings that convey the main point of each section.
314+
- Avoid ambiguous pronoun references ("it," "this," "that") — use the noun instead.
315+
316+
---
317+
318+
## Product Names
319+
320+
Use the following names in KB articles. Do not use abbreviations such as "NA" for Netwrix Auditor.
321+
322+
| Full Product Name | Short Product Name | Product ID (for `products` field) |
323+
|---|---|---|
324+
| Netwrix Activity Monitor | Activity Monitor | `activity_monitor` |
325+
| Netwrix 1Secure | 1Secure | `onesecure` |
326+
| Netwrix Auditor | Auditor | `auditor` |
327+
| Netwrix Change Tracker | Change Tracker | `change_tracker` |
328+
| Netwrix Data Classification | Data Classification | `data_classification` |
329+
| Netwrix Directory Manager | Directory Manager | `groupid` |
330+
| Netwrix Endpoint Protector | Endpoint Protector | `endpoint_protector` |
331+
| Netwrix Log Tracker | Log Tracker | `log_tracker` |
332+
| Netwrix Password Policy Enforcer | Password Policy Enforcer | `password_policy_enforcer` |
333+
| Netwrix Password Reset | Password Reset | `password_reset_manager` |
334+
| Netwrix Password Secure | Password Secure | `password_secure` |
335+
| Netwrix Endpoint Policy Manager | Endpoint Policy Manager | `policypak` |
336+
| Netwrix Endpoint Privilege Manager | Endpoint Privilege Manager | `privilege_secure_endpoints` |
337+
| Netwrix Privilege Secure for Access Management | Privilege Secure for Access Management | `privilege_secure` |
338+
| Netwrix Privilege Secure for Discovery | Privilege Secure for Discovery | `privilege_secure_discovery` |
339+
| Netwrix Recovery for Active Directory | Recovery for Active Directory | `recovery_ad` |
340+
| Netwrix Access Analyzer | Access Analyzer | `enterprise_auditor` |
341+
| Netwrix Threat Manager | Threat Manager | `threat_manager` |
342+
| Netwrix Threat Prevention | Threat Prevention | `threat_prevention` |
343+
| Netwrix Platform Governance for NetSuite | Platform Governance for NetSuite | `strongpoint_netsuite` |
344+
| Netwrix Platform Governance for Salesforce | Platform Governance for Salesforce | `strongpoint_salesforce` |
345+
| Netwrix Identity Manager | Identity Manager | `usercube` |
346+
| Netwrix Vulnerability Tracker by Greenbone | Vulnerability Tracker | `vulnerability_tracker_gb` |
347+
348+
### When to use long vs. short product names
349+
350+
Use the full product name (for example, "Netwrix Auditor"):
351+
- The first time you introduce a product
352+
- With service names (for example, "Netwrix Auditor for File Servers Service")
353+
- With log names (for example, "Netwrix Auditor Health Log")
354+
355+
Use the short product name (for example, "Auditor"):
356+
- Every subsequent mention after the first
357+
- With "server" and "client"
358+
359+
Do not use a product name for product components once the product has been introduced (for example, "Audit Database," "Long-Term Archive," "Monitoring plans").

0 commit comments

Comments
 (0)