Writing Knowledge Base Articles
To write a KB article:
- Pick article type: Troubleshooting / How-To / FAQ / Known Issue / Getting Started
- Pick audience: End User / IT Staff / Developer / SysAdmin
- Draft sections in order: Title → Symptoms → Affected Versions → Prerequisites → Resolution (or Workaround+Status if Known Issue) → Closing
- Flag any version-specific paths, internal names, or unverified patch dependencies with
<!-- VERIFY: ... --> - Run the checklist before publishing
Example header to start every draft:
Article Type: Troubleshooting
Audience: End User
Progress:
- Step 1: Identify article type (determines skeleton)
- Step 2: Identify audience (determines vocabulary/detail level)
- Step 3: Write title (≤70 chars, searchable, no jargon)
- Step 4: Write symptoms (second-person, observable only)
- Step 5: Write affected versions/environments (explicit or flagged as unverified)
- Step 6: Write prerequisites (access, tools, pre-tasks)
- Step 7: Write resolution steps (numbered, audience-matched detail)
- Step 8: If Known Issue — replace Resolution with Workaround + Status
- Step 9: Add closing section (escalation, related articles, contact)
- Step 10: Insert VERIFY flags on anything version/environment-specific
- Run Best-Practice Checklist
Step 1 — Article Type Selection
| Type | When to Use | Core Sections |
|---|---|---|
| Troubleshooting | User reports error/unexpected behavior | Symptoms → Affected Versions → Prerequisites → Resolution → Escalation |
| How-To Guide | Instructional task | Goal → Prerequisites → Steps → Verification → Related Tasks |
| FAQ | Stand-alone Q&A pairs | Question/Answer pairs, no cross-refs |
| Known Issue | Confirmed defect, no fix yet | Symptoms → Affected Environments → Root Cause → Workaround → Status |
| Getting Started | New-user onboarding | Overview → Prerequisites → First-Run Steps → Next Steps → Support Links |
Rule: if no fix exists yet, it's Known Issue, not Troubleshooting — even if symptoms look identical.
Step 2 — Audience Selection
| Audience | Vocabulary | Includes | Assumes |
|---|---|---|---|
| End User | Plain English | Exact UI paths, button names | No system internals knowledge |
| IT Staff | Standard IT terms | Diagnostic tools, escalation triggers | OS nav + ticketing familiarity |
| Developer | API/config/error-code terms | Code snippets, log paths | Comfortable editing configs/logs |
| SysAdmin | Shell/service terms | CLI commands, service restarts | Elevated/console access |
Record this as Audience: X at the top of the draft — it's the reviewer's reference point.
Step 3 — Title
- Plain language, no codenames/internal IDs
- Include primary symptom + app name if relevant
- ≤70 characters
Example: "Cisco AnyConnect VPN fails to connect after Windows update – 'Tunnel not found' error"
Step 4 — Symptoms
- Second person: "You may see…"
- Exact on-screen text/UI elements/observable behavior only — no root-cause analysis here
You may notice:
- Symptom 1 (exact error wording)
- Symptom 2 (observable behavior)
Step 5 — Affected Versions/Environments
- List confirmed version numbers/OS builds/dates
- If unknown: state explicitly — "Tested on version X.Y; verify against your version"
- Include environmental qualifiers ("domain-joined only", "requires corporate VPN")
Step 6 — Prerequisites
- Bullet list, each item starts with a capital letter
- Cover: access level, required tools, pre-tasks
Step 7 — Resolution Steps
- Numbered list, one actionable sentence per step, <30 words
- Split complex actions into sub-steps (a., b., c.)
- End-User audience → exact menu paths ("Start → Settings → Network & Internet")
- Technical audiences → command syntax, config paths, API calls
- Add verification cues where useful ("You will see a 'Connected' status")
Step 8 — Known-Issue Branch
If article type is Known Issue:
- Remove the Resolution section entirely
- Add Workaround subsection (temporary mitigation steps)
- Add Status line: "No confirmed fix yet – under investigation by the product team (Ticket #12345)"
- Optionally link the tracking ticket (internal link only for internal audiences)
Step 9 — Closing Section
- "Still having issues?" — contact method (phone/email/portal)
- Related articles — up to 3 relevant KB links
- Escalation path (internal audiences only) — next support tier, required info, SLA
Step 10 — Verification Flags
Insert <!-- VERIFY: ... --> wherever:
- Version-specific file/registry paths appear
- Internal system/hostnames/proprietary tools appear
- A step depends on a recent patch not universally deployed
These must be reviewed by a senior writer/SME before publishing.
Example 1 — Troubleshooting, End User Input: VPN disconnects after Windows update, error "Tunnel not found" Output:
Article Type: Troubleshooting
Audience: End User
# Cisco AnyConnect VPN fails to connect after Windows update – "Tunnel not found" error
- You see the error "Tunnel not found" when launching AnyConnect
- The VPN icon shows disconnected even after multiple retry attempts
- Cisco AnyConnect 4.10 on Windows 10 22H2 <!-- VERIFY: confirm build number -->
- Local admin rights
- Access to Settings app
- Go to Start → Settings → Apps → Installed apps.
- Uninstall Cisco AnyConnect.
- Restart your computer.
- Reinstall AnyConnect from the company software portal.
- Launch AnyConnect — you will see the normal login prompt.
Contact the IT Help Desk at helpdesk@company.com or ext. 4357.
**Example 2 — Known Issue, IT Staff**
Input: Confirmed bug, printer spooler crashes on shared network printers, no fix yet
Output:
Article Type: Known Issue Audience: IT Staff
Print Spooler crashes on shared network printers after patch KB123456
- Print Spooler service stops unexpectedly when printing to shared printers
- Windows Server 2019 with KB123456 installed <!-- VERIFY: confirm patch ID -->
- Suspected driver incompatibility; under investigation
- Restart the Print Spooler service via services.msc.
- Advise users to print directly to the printer IP instead of the shared queue.
No confirmed fix yet – under investigation by the product team (Ticket #48213).
If the workaround fails, escalate to Tier 2 with event log export attached.
- Match vocabulary strictly to the declared audience — don't mix registers (e.g., no PowerShell commands in an End User article)
- Keep resolution steps atomic: one action, one sentence
- Always state explicitly when a version/environment is unverified rather than omitting it
- Use the read-aloud test: a non-technical person should be able to follow steps without extra help (for End User articles)
- Prefer linking 1–3 related articles over none or many
- Don't write a Resolution section for a Known Issue — use Workaround + Status only
- Don't include root-cause analysis in the Symptoms section — symptoms are observable only
- Don't leave version-specific paths or internal tool names unflagged
- Don't exceed 70 characters in the title or bury the core symptom in jargon
- Don't skip the audience label — it silently causes register drift during review