Uh oh!
There was an error while loading. Please reload this page.
Reorganize Password Reset KB into 7 categorized folders and add sidebar - #8
Merged
Conversation
- Create category folders following established KB pattern - Reorganized 24 KB articles into 7 categorized folders for better organization - Rename images/ to 0-images/ - Update all image references (./images/ → ../0-images/) - Enable KB sections in version 3.3 and 3.23 sidebars - Update index.md landing page with category descriptions - Update _category_.json configuration Restored from archived repository with clean commit history.
- Remove 24 duplicate markdown files from root directory - Remove duplicate images/ folder - Tested and verified successful build
hilram7
commented
Jan 4, 2026
CollaboratorAuthor
hilram7
marked this pull request as ready for review
January 4, 2026 21:31
jake-mahon-netwrix
approved these changes
Jan 5, 2026
Uh oh!
There was an error while loading. Please reload this page.
gustavofilippininetwrix added a commit
that referenced
this pull request
Jan 19, 2026
hilram7 added a commit
that referenced
this pull request
Aug 12, 2026
…-dump precedence Per explicit decisions on two open questions: 1. derek's Error-vs-Symptom classification was circular: it classified Resolution as Error only if the title already started with Error:, then checked that Error titles start with Error: — trivially true by construction, so an Error article missing the prefix silently passed as Symptom. Now classifies by content (does the Symptom section name a specific, identifiable error code/message) independent of title, then checks the title against that classification as a real, reachable check. 2. The <Component> Error - <phrase> log-dump normalization now explicitly wins over and is exempt from the Error: prefix requirement, rather than leaving both rules asserted with no stated precedence. None of the three existing worked examples in the rulebook use the Error: prefix, so this keeps them valid instead of requiring a rewrite. Updated the rulebook §12, derek §3, and kb-pr-open's title-format rules to state the same precedence consistently. Also fixed two nits: escaped-metacharacter guidance for the title- change link-sweep regex (titles containing . or + would otherwise silently mismatch), and disambiguated "rows §7, §8" to "rows #7, #8" in the two example tables, since § means rulebook section everywhere else in the file. kb-pr-review's un-propagated callout-severity rule and the products.js hyphenation migration debt (explicit decision: keep the strict rule, treat as migration debt like the heading pluralization) are logged on the tracked dedup issue. Generated with AI Co-Authored-By: Claude Code <ai@netwrix.com>
hilram7 added a commit
that referenced
this pull request
Aug 12, 2026
- Title-change link-sweep escape guidance said to escape ".", "+",
"(", ")", ":" — omitting "?" (which this PR's own Q&A carve-out
newly makes valid in titles, e.g. "How Do You Export Event Logs?"),
"*", "[", "]", "{", "}", "|", "^", "$", and incorrectly including
":" (not an ERE metacharacter). Replaced the partial enumeration
with "escape every ERE metacharacter" plus a grep -rF fallback
that sidesteps escaping entirely.
- kb-pr-review had fallen out of sync with three rule changes this
PR already made to derek/kb-pr-open: it still called the Error:
prefix "retired" (contradicting kb_style_guide.md, derek §3, and
kb-pr-open, and disagreeing with the reviewer on the same
article's title fix), its scan row 1 still listed WARNING as a
valid callout, and it had no equivalent to kb-pr-open's row 23
(flagging wrong-severity blockquotes and Docusaurus admonitions).
Given this has now recurred across four review rounds with
concrete file-level evidence each time, fixed directly here
instead of deferring again: updated the retired-prefix line,
added row 23, dropped WARNING from row 1, and bumped all five
"22 rows"/"22/22" references to 23. Also removed a stale "row 23
removed" comment that predated this reuse of row 23, and
disambiguated "rows §7, §8" to "rows #7, #8" to match kb-pr-open.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>hilram7 added a commit
that referenced
this pull request
Aug 12, 2026
* Add kb-writer and kb-pr-open skills
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix kb-pr-open all-clean short-circuit and remove hardcoded path
Address code review: base the all-clean exit on branch state
(git status/log vs dev) instead of run-local fix count, so
already-committed content isn't stranded; use safe branch -d
gated on no unmerged commits; drop personal machine path from
the PR description memory reference.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Harden dev-ref check and fix knowledge_article_id contradiction
Address second code review round:
- Fetch origin/dev before diffing and use the remote-tracking ref
instead of a bare dev, which may not exist locally or may be
stale; fail open to Step 5 if the git commands error instead of
treating a failure as "clean."
- Resolve kb-pr-open's internal self-contradiction on
knowledge_article_id: the field's state is informational only,
so drop the "add it if missing" and "must always be present"
language that conflicted with the documented never-add/never-remove
policy.
- Drop citations to feedback_kb_* memory files that don't exist in
the repo and are unreachable for other TSEs; the conventions they
referenced are already inlined in the skill.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Strip + verbose before path validation; fix branch-delete sequencing
Address third code review round:
- Step 1 now strips a trailing "+ verbose" token before validating
file paths, so the documented invocation form doesn't fail its
own path check.
- All-clean exit message now switches to dev before running
git branch -d, since git refuses to delete the branch you have
checked out.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix misfiled callout guidance and false branch-delete refusal
Address fourth code review round:
- Move the stray ":::note is not the KB format" guidance out of
the title:semantic Derek row (unrelated to titles, only read
while scoring titles) into a new scan row (23) that actually
enforces it: flag ::: admonitions and convert to blockquote
callout form per kb_style_guide.md. Update row-count references
from 22 to 23 accordingly.
- All-clean exit now suggests git switch --detach origin/dev
before git branch -d, since evaluating merge status against a
stale or missing local dev could falsely refuse a delete.
The shared-rule-drift finding (kb-pr-open vs kb-pr-review) is the
same class of issue as the already-tracked dedup follow-up;
evidence added as a comment on that issue instead of fixing here.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Add Vale fallback, fix dead rule reference and links-check gaps
Address fifth code review round:
- Step 1 now checks Vale availability up front, and both this and
the Step 2 fallback note render a missing/erroring Vale as
"not run (Vale not installed)" rather than a silent false
"Clean" row.
- Ported the NetwrixKB scoping sentence explaining why KB files
fire NetwrixKB.* rules only, and dropped BoilerplateCrossRef
from the WeakLinkText fix guidance since that rule lives only
in the Netwrix style and can never fire on docs/kb/ files.
- Links check now recognizes pathname:///docs/... (the form
rulebook §8 mandates for internal cross-doc links, in active
use in 10 KB articles) in addition to /docs/..., and flags
dotted version segments (8.2 instead of 8_2) per the same
section. Restored the npm run build backstop note.
- All-clean short-circuit pathspec widened from docs/kb/ to
docs/, matching the blast radius of the title-change link-text
sweep that runs immediately before it.
The same BoilerplateCrossRef and pathname:// gaps exist in
kb-pr-review (inherited, not introduced here); documented as
follow-up evidence on the tracked dedup issue instead of fixing
kb-pr-review in this PR.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Align resolution heading convention to singular-only; widen clean-tree check
Address sixth code review round:
- kb_style_guide.md and derek/SKILL.md incorrectly allowed plural
resolution headings (## Symptoms/## Causes/## Resolutions),
contradicting kb-pr-open's and kb-pr-review's singular-only rule.
Singular-only is the correct, established convention (confirmed
by kb-pr-review); corrected the style guide and derek to match,
and dropped the plural forms from kb-writer's Section Depth table.
- All-clean short-circuit in kb-pr-open now checks the whole
working tree and full branch history vs. origin/dev, not just
docs/ — the exit message claims the tree is clean enough to
delete the branch, which a docs/-scoped check couldn't actually
establish (e.g. an uncommitted static/ asset would be invisible
to the old pathspec).
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Remove leftover contradictory pathspec sentence
Address seventh code review round: drop the stale "scope the
pathspec to docs/" lead-in sentence, left over from an earlier
revision, that contradicted the no-pathspec code block and
whole-tree wording that already follow it.
Reviewer's rulebook §12 circular-reference finding did not
reproduce — §12 already contains the raw log-line/error-dump
title rule content, not just a pointer back to the skill.
Migration debt (169 files with plural resolution headings) and
the cross-section table row-count drift vs. the rulebook are
documented as follow-up evidence on the tracked dedup issue.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix Step 1 Vale-availability guard skipping Dale and Derek
When Vale is missing, Step 1 told the agent to jump straight to
Step 3 (report), bypassing Step 2 (Dale and Derek) entirely.
Step 3's N/N-scanned receipt mechanism would then certify checks
that never ran, producing a false all-clean report on exactly the
fresh-machine case (Vale not yet installed) this skill's TSE
audience is most likely to hit. Point to Step 2 instead, which
already has the correct continue-on-error guard for Vale.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Gate the push in Step 7, fix PR-update wording, add detached-HEAD case
- Step 7 Option A now confirms with the TSE before running git
push, matching the skill's own stated rule ("does not run git
operations without explicit TSE approval") — the push was the
only ungated git action in the flow.
- "Update existing PR" no longer claims "I pushed" when Option B
means the TSE did the push, not the skill.
- Step 1's branch check now handles detached HEAD explicitly
(stop and warn) instead of falling through to "proceed," since
a later git push would have no upstream to resolve.
The Derek-rules-in-four-places finding is the same class of issue
as the tracked dedup follow-up; added as further evidence there.
The gh pr list fork-branch edge case is noted there too, flagged
as possibly out of scope rather than fixed.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Dedupe push instruction, skip fix prompt on clean reports, add recount caveats
- Create new PR Option A/B no longer tell the agent to push again —
Step 7 item 1 already pushed (and now gates that push on TSE
approval per the prior commit). Two push sites for one action was
a leftover from before that gate existed.
- Step 4 now skips the "Ready to apply fixes?" prompt when Step 3's
report already shows zero Required fixes, going straight to the
All-clean short-circuit instead. Kept the report-clean condition
explicit rather than just reordering the git checks earlier —
moving the short-circuit's git status/log checks alone in front of
the prompt would have incorrectly short-circuited runs that found
real, not-yet-fixed findings (nothing would be in git yet either
way).
- Added the same "recount if the table changes" caveat already on
the Derek row to the kb-editing-conventions scan and cross-section
consistency row counts, keeping the N/N scanned receipt honest as
those tables grow.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix link-sweep pattern gap, conditional build backstop, wording nits
- Title-change link-text sweep grep pattern now makes pathname://
optional, so it catches pathname:///docs/... links (17 in the
repo) instead of only the bare /docs/... form.
- Links check no longer claims onBrokenLinks unconditionally
throws — docusaurus.config.js relaxes onBrokenLinks/
onBrokenMarkdownLinks/onBrokenAnchors to warn for single-product
builds (the faster path CLAUDE.md recommends), so the build
backstop only reliably fails on a full build.
- derek/SKILL.md now flags a pluralized resolution heading
(## Symptoms/Causes/Resolutions) as a rename, not as a missing
heading — matches the explicit heading-labels rule kb-pr-open
and kb-pr-review already have, instead of relying on the
presence check's generic "add this heading" message.
- Reworded the "no git operations without approval" rule to carve
out read-only status commands (fetch/status/log used internally
by the all-clean short-circuit) from the approval gate that
covers state-changing operations (commit, push, branch create/
delete) — the flow already ran the read-only commands unprompted;
the stated rule now matches.
- Disambiguated "no pathspec on either command" (which reads oddly
against a 3-command block) to name status/log specifically.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix Gate B qualifier drop, dead citations, relative-link gap, detached-HEAD note
Proactive audit + latest review round, combined:
- Restored "and represent sequential steps of the same procedure"
to Gate B (scan row 8) — dropped relative to the rulebook and
kb-pr-review, which would have applied Step N labeling to any
3+ subheadings regardless of whether they're actually sequential
steps of one procedure.
- Added the missing H1/sidebar_label-consistency bullet to the
mechanical title-fix list — present in kb-pr-review, absent here,
so the areas-table citation to this section pointed at content
that wasn't there.
- Repointed the ::: admonition rule's citation from kb_style_guide.md
(which never mentions Docusaurus admonition syntax at all) to
derek/SKILL.md §7, the actual source.
- Links check and title-change sweep now also cover relative .md
links (../other-article.md), which kb_style_guide.md's own "Do"
example uses and which were previously excluded as "external."
- All-clean exit message now tells the TSE to check out a branch
before the next article, since the suggested branch-delete
command intentionally leaves them on a detached HEAD, which this
same skill's Step 1 guard would otherwise stop them on next run.
Empirically verified (Vale installed locally) that NetwrixKB truly
replaces rather than merges with Netwrix on docs/kb/ files, per a
review round questioning that claim: a Netwrix-only rule
(BoilerplateCrossRef) produced zero alerts on a docs/kb/ test file.
kb-pr-open's existing guidance was already correct; no change
needed there. kb-pr-review's contradicting guidance, plus its
missing admonition scan row and stale link-sweep pattern, are
already logged as follow-up evidence on the tracked dedup issue.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix admonition-type mismatch, false-clean exit wording, skip-condition, push -u
- Canonicalize the admonition-type list (note/tip/info/warning/danger/
important) across derek/SKILL.md §7 and kb-pr-open's scan rows 1
and 23 — the two files previously enumerated different four-item
subsets, neither covering :::info or :::danger (both in real use).
- Step 4's skip-the-prompt condition now keys on "zero findings of
any kind," not "zero Required fixes" — a file with only soft
reminders (semantic title reframes, knowledge_article_id notes,
low-priority keyword observations) was previously skipped past
the fix prompt entirely, giving the TSE no chance to act on them.
- All-clean exit message now has two variants: the original for
when the report was genuinely empty, and a new one for when
findings existed but were declined/dismissed — the old single
wording ("no fixes were needed") was false in the latter case.
- Step 7's numbered push step now carries the -u fallback that was
already in the STOP callout above it but not in the step actually
being executed, so a fresh branch with no upstream doesn't fail.
The Derek-rules-hardcoded finding and the un-anchored N/N receipt
risk are the same class of issue as the tracked dedup follow-up;
added as further evidence there, including the admonition-list
drift this commit fixes as a concrete example of the failure mode.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Resolve Q&A gerund policy, collapse callout severities, add malformed-ID state
Per explicit product decisions on two open policy questions this
review round surfaced:
1. Q&A title gerund exception: kb-pr-open's existing carve-out
(Q&A titles stay in question/topic form, not forced to gerund)
is now the stated policy everywhere. Fixed kb_style_guide.md and
derek/SKILL.md §3, which previously required gerund form for ALL
How-To titles with no exception — contradicting kb-pr-open,
kb-pr-review (which already had the same carve-out), and derek's
own article-type classifier (which uses "title starts with 'How
to'/is a question" as the Q&A signal, so derek's classifier and
title-format check were self-contradictory independent of this
PR).
2. Callout severity taxonomy: collapsed to the two severities
kb_style_guide.md already formally defines (NOTE, IMPORTANT).
derek/SKILL.md §7 and kb-pr-open's scan rows 1/23 previously
disagreed on whether WARNING/TIP were separate target severities
(2 vs 3 vs 4-way splits), and none handled :::info/:::danger.
Added an explicit six-to-two conversion mapping in derek §7 and
kb-pr-open row 23, and removed WARNING from kb-editing-
conventions.md §5's blank-line rule to match.
Also added the missing "present but malformed" state to kb-pr-open's
knowledge_article_id table — a value that doesn't start with kA+
alphanumeric (e.g. "12345") previously fell through to the
never-rewrite policy meant for valid/placeholder/empty/missing
states and was reported clean, while derek §1 already flags the
same case as a Required fix.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix derek's title-only classifier and blockquote-severity enforcement gap
1. derek's article-type classifier determined type purely from title
phrasing, contradicting this PR's own Q&A carve-out (Q&A titles
are allowed to be non-interrogative). A Q&A article with a
topical title fell through to Resolution (Symptom) and got
flagged for missing headings it was never supposed to have —
confirmed against real data: 131 of 234 ## Question files have
non-interrogative, non-"How to" titles. Made the classifier
structure-first (## Question+## Answer, ## Overview+
## Instructions, ## Symptom/Cause/Resolution), falling back to
title only when no recognized structure exists — matching how
kb-pr-open/kb-pr-review already scope by structure, not title.
2. The "NOTE/IMPORTANT only" severity policy had no enforcement path
for callouts already in blockquote form with a disallowed
severity (> **TIP:**, > **WARNING:**, etc.) — every existing rule
only matched Docusaurus ::: syntax. 16 files (15 TIP, 1 WARNING)
were invisible to any check. derek §7 and kb-pr-open row 23 now
flag both the ::: form and the wrong-severity blockquote form,
with an explicit mapping covering both spellings of each severity.
Migration blast radius for both changes logged on the tracked
dedup issue rather than swept in this PR.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix classifier plural-heading miss, PNG-only claim, Error: prefix status, report routing
1. derek's structure-first classifier (added last commit) only
matched singular Symptom/Cause/Resolution headings. A plural-
headed Resolution article (171 files use plural headings) fell
through to the title fallback and got misclassified as How-To —
exactly the failure mode the §2 plural-rename note exists to
prevent. Now matches singular or plural for the structure check,
and still flags plural as a rename per §2. Also switched the
"/" separator between Symptom/Cause/Resolution to explicit "and"
semantics via prose, since "/" read ambiguously as "any of"
next to the Question/Answer and Overview/Instructions bullets,
which correctly used "and".
2. kb-pr-open's images:location rule said PNG-only; 4 committed
.webp images (docs/kb/endpointprotector, docs/kb/accessanalyzer)
are real, referenced, non-violating images that would have been
flagged. Now allows PNG or WebP.
3. The rulebook and kb-pr-open both called the Error: title prefix
"retired," which contradicts kb_style_guide.md and derek/
SKILL.md §3, both of which still require it for Resolution
(Error) titles, and 24 files actively use it. Corrected both
to state the prefix is still required and distinct from the
inline "Error - <phrase>" log-dump normalization, rather than
claiming either is retired.
4. Step 3's report contract required a findings section for any
non-clean Overview row, but only defined table shapes for Vale/
Dale/Derek — cross-section consistency findings had no place to
be reported. Routed them into the Derek table with `cross-section`
as the area, mirroring how kb-editing-conventions findings
already route there.
kb-pr-review's identical PNG-only wording noted as follow-up on
the tracked dedup issue.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Break Error/Symptom classification circularity, resolve prefix-vs-log-dump precedence
Per explicit decisions on two open questions:
1. derek's Error-vs-Symptom classification was circular: it
classified Resolution as Error only if the title already started
with Error:, then checked that Error titles start with Error: —
trivially true by construction, so an Error article missing the
prefix silently passed as Symptom. Now classifies by content
(does the Symptom section name a specific, identifiable error
code/message) independent of title, then checks the title
against that classification as a real, reachable check.
2. The <Component> Error - <phrase> log-dump normalization now
explicitly wins over and is exempt from the Error: prefix
requirement, rather than leaving both rules asserted with no
stated precedence. None of the three existing worked examples in
the rulebook use the Error: prefix, so this keeps them valid
instead of requiring a rewrite. Updated the rulebook §12, derek
§3, and kb-pr-open's title-format rules to state the same
precedence consistently.
Also fixed two nits: escaped-metacharacter guidance for the title-
change link-sweep regex (titles containing . or + would otherwise
silently mismatch), and disambiguated "rows §7, §8" to "rows #7,
#8" in the two example tables, since § means rulebook section
everywhere else in the file.
kb-pr-review's un-propagated callout-severity rule and the
products.js hyphenation migration debt (explicit decision: keep
the strict rule, treat as migration debt like the heading
pluralization) are logged on the tracked dedup issue.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix self-contradiction reintroducing the Error: prefix false positive
The classifier section (Article Type Identification) said a
Resolution (Error) title must start with Error: "regardless of
what the title currently says," directly contradicting the §3
exception added in the same commit for titles already normalized
to the <Component> Error - <phrase> log-dump form. An agent
following the classifier section literally would flag the exact
false positive that §3, kb-editing-conventions.md §12, and
kb-pr-open's title-format rules were all just changed to prevent.
Made the classifier defer to §3's actual condition instead of
restating a stricter one.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix regex escape list gap; sync kb-pr-review to the Error/callout rules
- Title-change link-sweep escape guidance said to escape ".", "+",
"(", ")", ":" — omitting "?" (which this PR's own Q&A carve-out
newly makes valid in titles, e.g. "How Do You Export Event Logs?"),
"*", "[", "]", "{", "}", "|", "^", "$", and incorrectly including
":" (not an ERE metacharacter). Replaced the partial enumeration
with "escape every ERE metacharacter" plus a grep -rF fallback
that sidesteps escaping entirely.
- kb-pr-review had fallen out of sync with three rule changes this
PR already made to derek/kb-pr-open: it still called the Error:
prefix "retired" (contradicting kb_style_guide.md, derek §3, and
kb-pr-open, and disagreeing with the reviewer on the same
article's title fix), its scan row 1 still listed WARNING as a
valid callout, and it had no equivalent to kb-pr-open's row 23
(flagging wrong-severity blockquotes and Docusaurus admonitions).
Given this has now recurred across four review rounds with
concrete file-level evidence each time, fixed directly here
instead of deferring again: updated the retired-prefix line,
added row 23, dropped WARNING from row 1, and bumped all five
"22 rows"/"22/22" references to 23. Also removed a stale "row 23
removed" comment that predated this reuse of row 23, and
disambiguated "rows §7, §8" to "rows #7, #8" to match kb-pr-open.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix pathname:// mandate misstatement and shell-quoting hazard in link sweep
1. kb-pr-open's links row claimed "rulebook §8 mandates the
pathname:// form for internal cross-doc links" — the rulebook
only constrains pathname:// links that already exist (underscore
version segments, must resolve), it doesn't mandate using that
form. The bare /docs/... form is dominant (~218 KB files) and
builds clean. Reworded to state all three internal link forms
are valid and none should be converted to another.
2. The title-change link-text sweep in both kb-pr-open and
kb-pr-review built a shell grep command by interpolating the
old title into a single-quoted string. Over 20 KB titles contain
an internal apostrophe (e.g. "Unable to Login to UI due to
'Invalid Token' Error"), which breaks out of a single-quoted
shell string — on top of the regex-metacharacter escaping this
already called for. Reworded to use a dedicated search tool
with the title passed as a parameter (removing the shell-quoting
layer entirely) while keeping the regex-escaping requirement,
since the underlying match is still regex-based. Applied the
same fix to kb-pr-review's copy, which had not been updated
with the multi-form pattern from an earlier round either.
3. kb-pr-review's Overview-table bullet said "Cross-section
consistency (all patterns)" while every other reference to this
row in the same file says "6 patterns" — matched kb-pr-open's
phrasing, including the recount caveat.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Broaden Error: exemption, carve out unmapped product IDs, fix heading-labels scope
1. The Error:-prefix exemption only covered titles normalized from
a raw log dump, but kb_style_guide.md's actual exemption is
broader: any Resolution (Error) title where the error message
itself already contains the word "error" (e.g. "Agents Have
Become Unresponsive Error") is exempt, independent of whether
it's a log-dump normalization. Dozens of real KB titles hit this
broader case. Fixed in derek/SKILL.md (classifier and §3),
kb-pr-open, kb-pr-review, and kb-editing-conventions.md §12 to
state both exemptions consistently. Also fixed two derek/SKILL.md
shorthand path references (should be .claude/skills/derek/SKILL.md
from within .claude/references/).
2. products frontmatter rule had no valid target for three values
in active use: general (44 files, cross-product content, no
corresponding product.js entry), onesecure (5 files — has a
real target, 1secure, so this one should still be flagged and
corrected), and recoveryad (1 file — genuinely ambiguous, the
copy script maps two different products to this KB folder).
Carved out general/recoveryad as non-flaggable and clarified
onesecure as a normal correction, in both kb-pr-open and
kb-pr-review.
3. article-type: heading-labels was scoped to "Symptom Resolution
articles" only, but the singular-heading rule applies to both
Resolution formats (kb_style_guide.md, derek §2). An Error
Resolution article with plural headings would have been skipped
by this check and only caught downstream. Fixed in both
kb-pr-open and kb-pr-review.
Also added derek, kb-writer, kb-pr-open, and kb-pr-review to
CLAUDE.md's Skills and Agents table — all four were missing.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Add kb-pr-review frontmatter, fix image-format/heading-scope gaps, resolve Q&A wording contradiction
1. kb-pr-review/SKILL.md had no YAML frontmatter (no name/description/
argument-hint), unlike every other skill — including the two new
ones this PR adds. Added it, matching the convention.
2. images:location still disagreed between kb-pr-open (PNG or WebP)
and kb-pr-review (PNG only) — and neither actually matched the
repo, which also has committed .jpg/.jpeg files. Widened both to
"format doesn't matter, only location does," covering all four
formats in active use.
3. :::caution (valid Docusaurus admonition syntax) was missing from
every six-item ::: enumeration (derek §7, kb-pr-open/kb-pr-review
rows 1 and 23) despite the blockquote half of the same rule
already targeting > **CAUTION:**. Added it everywhere.
4. Derek's structure-first classifier required ALL of a type's
headings before classifying (## Question AND ## Answer, etc.).
An article missing just one heading fell through to the title
fallback and got misclassified as an unrelated type, demanding a
Symptom/Cause/Resolution structure it never needed. Changed to
partial-match tolerance (any one of a type's headings is enough
to classify; §2 flags the rest as missing) — extending the same
forgiveness already given to Resolution's plural-heading case.
5. kb_style_guide.md's Q&A title rule was self-contradictory:
"describes the topic, not the action" immediately followed by
"a 'How to...' title is expected" (which is action-form). Fixed
in kb_style_guide.md, derek §3, and the gerund-carve-out wording
in both kb-pr-open and kb-pr-review to state consistently that
topic-descriptive, "How to...", and question-form titles are all
valid for Q&A — none is a gerund violation.
Also caught while reviewing: kb-pr-review's links row was still the
pre-sync version (missing pathname:// and relative-.md link forms,
and the unconditional build-backstop claim) — synced to match
kb-pr-open's already-fixed version.
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
* Fix classifier ordering regression and stale PNG-only claim in docs/CLAUDE.md
1. The partial-match classifier fix from the previous commit checked
Q&A and Instructions before Resolution, with "first match wins."
Since a Resolution article can legitimately carry an ## Overview
heading alongside Symptom/Cause/Resolution, that combination now
matched the Instructions check first and misclassified. Confirmed
against three real KB files: two Overview+Symptom+Cause+Resolution
articles would have been told to add an unneeded ## Instructions
section and gerund-ize an error title; a Symptom+Cause+Answer
article would have been told to add ## Question instead of being
told its real defect (## Answer should be ## Resolution) — the
exact opposite of what the prior title-based rule got right.
Reordered to check Resolution first, since How-To articles never
carry ## Symptom but Resolution articles routinely carry
## Overview — the asymmetry that made this safe to reorder.
2. docs/CLAUDE.md (auto-loaded whenever an agent works under docs/)
still asserted KB images are PNG-only, contradicting the format
rule this PR already relaxed in kb-pr-open and kb-pr-review to
match what's actually committed on disk (PNG/WebP/JPG/JPEG).
Generated with AI
Co-Authored-By: Claude Code <ai@netwrix.com>
---------
Co-authored-by: Claude Code <ai@netwrix.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Reorganizes the Password Reset knowledge base into 7 categorized folders with improved navigation structure and updates sidebar navigation for versions 3.3 and 3.23.
Changes Made
customization-of-logon-prompt-extensionhow-to-change-a-domain-name-for-all-enrolled-usershow-to-change-default-language-of-the-self-service-portalhow-to-configure-website-accessibility-using-server-hostname-onlyhow-to-localize-password-managerload-balancing-cluster-for-password-managermigrate-netwrix-password-resetautomatic-enrollment-failed-unknown-errorautomatic-user-enrollment-failed-not-found-404error-can-t-resolve-username-in-the-local-secret-questions-cacheerror-no-mapping-between-account-names-and-security-ids-was-donethe-enrollment-wizard-starts-every-time-a-user-logs-inhow-to-use-twilio-cli-with-netwrix-password-reset-sms-verificationtroubleshoot-missing-microsoft-365-emails-using-smtp-relayan-error-occured-on-the-server-when-processing-the-urlcannot-login-the-helpdesk-and-admin-portalpassword-reset-link-is-missingsession-expiredreport-could-not-be-downloadedreports-available-within-password-managerdata-filtering-in-data-consoleerror-access-denied-or-insufficient-permissionsppe-resolving-compatibility-issues-with-microsoft-teamssecurity-certificates-and-permissions0-images/folder for improved organization_category_.jsonwith new structureindex.mdwith category descriptionsFiles Changed
Testing
devRestored from archived repository with clean commit history.
Archived PR: https://github.com/netwrix/docs-archive-2025-12-22/pull/446