gap-analysis
Skill41 starsChanged 17 days agoApache-2.0View on GitHub
Analyze knowledge gaps by examining incident and case patterns without matching KB articles, identify topics needing new articles, track failed searches, and prioritize article creation
21 other projects use a version of this.
Adopted by
Most recently taken up by
- DatasiteAI/mcp-skillstheir own version, first seen Nov 3, 2026
- MarieLynneBlock/arcanum-artifextheir own version, first seen Nov 1, 2026
- richardochristjia/skillstheir own version, first seen Nov 1, 2026
- TanStack/aitheir own version, first seen Oct 22, 2026
- adeerkhan/vitruviustheir own version, first seen Oct 20, 2026
- justice8096/dyscalculia-support-skilltheir own version, first seen Oct 13, 2026
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- TanStack/ai★ 3.3ksame name
- magnus919/agent-skills★ 172same name
- zrosenfield/sharepoint-ai-skills★ 96same name
- agent-ix/quoin★ 20same name
- afonsoft/skills★ 14same name
- excatt/superclaude-plusplus★ 14same name
- adeerkhan/vitruvius★ 10same name
- DatasiteAI/mcp-skills★ 5same name
- kevinlin/skills★ 5same name
- MarieLynneBlock/arcanum-artifex★ 4same name
11 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository184 other files it gives its agents.
- happy-platform-skillsSkill
- application-scopeSkill
- batch-operationsSkill
- configuration-validationSkill
- deployment-workflowSkill
- generic-crud-operationsSkill
- instance-managementSkill
- schema-discoverySkill
- script-executionSkill
- script-syncSkill
- smart-assessmentSkill
- task-analysisSkill
- task-summarizationSkill
- update-set-managementSkill
- user-provisioningSkill
- workflow-creationSkill
- workspace-insightsSkill
- approval-summarizationSkill
- approval-workflowsSkill
- catalog-builder-aiSkill
- catalog-item-generationSkill
- item-creationSkill
- multi-turn-orderingSkill
- request-fulfillmentSkill
- ui-policiesSkill
- variable-managementSkill
- ci-discoverySkill
- cmdb-search-analysisSkill
- data-qualitySkill
- impact-analysisSkill
- relationship-mappingSkill
- service-graph-diagnosisSkill
- activity-responseSkill
- csm-case-summarizationSkill
- chat-recommendationSkill
- email-recommendationSkill
- csm-kb-generationSkill
- resolution-notesSkill
- csm-sentiment-analysisSkill
- csm-sidebar-summarizationSkill
- csm-suggested-stepsSkill
- trending-topicsSkill
- automated-testingSkill
- business-rulesSkill
- client-scriptsSkill
- code-assistSkill
- code-reviewSkill
- data-importSkill
- debugging-techniquesSkill
- fluent-sdkSkill
- glide-api-referenceSkill
- mcp-server-installationSkill
- mcp-serverSkill
- notificationsSkill
- performance-optimizationSkill
- scheduled-jobsSkill
- scripted-rest-apisSkill
- script-includesSkill
- servicenow-docs-mcpSkill
- test-generationSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 20 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 49
Access: Read access to kb_knowledge, incident, sn_customerservice_case, kb_feedback, search_log, and kb_use tables
- Distinctive: line 190
If Customer Service Management is enabled, check for case topics lacking knowledge coverage.
- Distinctive: line 281
Focus on Resolved Incidents: Only analyze closed/resolved incidents where the resolution is documented in close notes
- Distinctive: line 291
Cause: Search analytics plugin not activated or search logging not enabled
- Very specific: line 292
Solution: Verify com.glide.search is active and the property glide.ts.search.log is set to true
- Distinctive: line 297
Solution: Create a mapping table between incident categories/subcategories and KB category labels for accurate cross-referencing
- Distinctive: line 321
Recommendation: Create a comprehensive DNS troubleshooting article covering common configuration errors, resolution steps, and escalation …
- Distinctive: line 340
No published articles in the external customer knowledge base
- Distinctive: line 344
Recommendation: Create a customer-facing article covering return eligibility, process steps, label generation, and refund timelines.
“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Knowledge Gap Analysis
Overview
This skill provides a systematic approach to identifying gaps in your ServiceNow knowledge base by correlating incident and case data with existing knowledge articles. Knowledge gaps lead to longer resolution times, repeated escalations, and poor self-service adoption.
This skill helps you:
- Identify high-volume incident categories that lack corresponding knowledge articles
- Analyze search logs to find queries that return zero or irrelevant results
- Correlate resolved incidents with knowledge base coverage to surface missing documentation
- Examine feedback signals indicating articles are incomplete or unhelpful
- Prioritize article creation based on incident volume, business impact, and resolution complexity
- Build a data-driven knowledge creation backlog
When to use: During quarterly knowledge reviews, after noticing rising incident volumes in specific categories, when self-service deflection rates drop, or when onboarding new support domains.
Prerequisites
- Roles:
knowledge_manager,knowledge_admin, oritilwith reporting access - Access: Read access to
kb_knowledge,incident,sn_customerservice_case,kb_feedback,search_log, andkb_usetables - Plugin:
com.glideapp.knowledge(Knowledge Management) activated - Recommended Plugin:
com.glide.search(Search Analytics) for search log analysis - Knowledge: Understanding of your incident categorization taxonomy and knowledge base structure
Procedure
Step 1: Identify Top Incident Categories by Volume
Retrieve a bounded incident sample and aggregate it locally by category and subcategory to find the highest-volume topics over the past 90 days.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: opened_at>=javascript:gs.daysAgoStart(90)^active=false^state=6
fields: sys_id,category,subcategory
limit: 1000
instance: devCount the returned rows locally by (category, subcategory), sort the counts
descending, and retain the top 25. The 1,000-record bound means this is a sample;
paginate deliberately if complete coverage is required.
Using REST API:
GET /api/now/stats/incident?sysparm_query=opened_at>=javascript:gs.daysAgoStart(90)^active=false^state=6&sysparm_group_by=category,subcategory&sysparm_count=true&sysparm_orderby=COUNT&sysparm_limit=25Step 2: Check Knowledge Coverage for Top Categories
For each high-volume category, search for published articles covering that topic.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: kb_knowledge
query: workflow_state=published^kb_category.label=Network^ORshort_descriptionLIKEnetwork
fields: sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on
limit: 20Using REST API:
GET /api/now/table/kb_knowledge?sysparm_query=workflow_state=published^kb_category.label=Network^ORshort_descriptionLIKEnetwork&sysparm_fields=sys_id,number,short_description,kb_knowledge_base,kb_category,sys_view_count,rating,sys_updated_on&sysparm_limit=20Step 3: Identify Incident Topics Without Any KB Articles
Cross-reference the top incident categories against knowledge base coverage. Query incidents in categories where Step 2 returned zero articles.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: opened_at>=javascript:gs.daysAgoStart(90)^state=6^category=network^subcategory=dns^resolved_byISNOTEMPTY
fields: sys_id,number,short_description,close_notes,category,subcategory,resolved_by,resolution_code
limit: 30Using REST API:
GET /api/now/table/incident?sysparm_query=opened_at>=javascript:gs.daysAgoStart(90)^state=6^category=network^subcategory=dns^resolved_byISNOTEMPTY&sysparm_fields=sys_id,number,short_description,close_notes,category,subcategory,resolved_by,resolution_code&sysparm_limit=30Step 4: Analyze Search Logs for Failed Queries
Find search terms users entered in the knowledge portal that returned no results or very few results.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: search_log
query: sys_created_on>=javascript:gs.daysAgoStart(30)^results_count=0^search_application=knowledge
fields: sys_id,search_term,results_count,sys_created_on,user
limit: 50Using REST API:
GET /api/now/table/search_log?sysparm_query=sys_created_on>=javascript:gs.daysAgoStart(30)^results_count=0^search_application=knowledge&sysparm_fields=sys_id,search_term,results_count,sys_created_on,user&sysparm_limit=50Retrieve a bounded sample of failed search terms, then count identical normalized terms locally to find the most common unmet queries:
Tool: SN-Query-Table
Parameters:
table_name: search_log
query: sys_created_on>=javascript:gs.daysAgoStart(30)^results_count=0^search_application=knowledge
fields: sys_id,search_term
limit: 1000
instance: devStep 5: Review Negative Feedback on Existing Articles
Find articles that users flagged as unhelpful, which may indicate incomplete coverage of a topic.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: kb_feedback
query: sys_created_on>=javascript:gs.daysAgoStart(90)^rating=not_helpful^ORrating=1
fields: sys_id,article,article.number,article.short_description,rating,comments,sys_created_on
limit: 30Using REST API:
GET /api/now/table/kb_feedback?sysparm_query=sys_created_on>=javascript:gs.daysAgoStart(90)^rating=not_helpful^ORrating=1&sysparm_fields=sys_id,article,article.number,article.short_description,rating,comments,sys_created_on&sysparm_limit=30Step 6: Examine Incidents Resolved Without KB Attachment
Find resolved incidents where no knowledge article was linked, indicating the resolution was ad hoc and undocumented.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: opened_at>=javascript:gs.daysAgoStart(90)^state=6^close_notes!=^kb_knowledgeISEMPTY
fields: sys_id,number,short_description,close_notes,category,subcategory,assignment_group,resolved_by
limit: 40Using REST API:
GET /api/now/table/incident?sysparm_query=opened_at>=javascript:gs.daysAgoStart(90)^state=6^close_notes!=^kb_knowledgeISEMPTY&sysparm_fields=sys_id,number,short_description,close_notes,category,subcategory,assignment_group,resolved_by&sysparm_limit=40Step 7: Analyze CSM Cases for Service-Specific Gaps
If Customer Service Management is enabled, check for case topics lacking knowledge coverage.
Using MCP:
Tool: SN-Query-Table
Parameters:
table_name: sn_customerservice_case
query: opened_at>=javascript:gs.daysAgoStart(90)^state=3^knowledge=false
fields: sys_id,product,category
limit: 1000
instance: devCount rows locally by (product, category) and keep the top 20. Treat the result
as a bounded sample unless you explicitly paginate the full date range.
Using REST API:
GET /api/now/stats/sn_customerservice_case?sysparm_query=opened_at>=javascript:gs.daysAgoStart(90)^state=3^knowledge=false&sysparm_group_by=product,category&sysparm_count=true&sysparm_limit=20Step 8: Build the Prioritized Gap Report
Compile findings into a prioritized list. Score each gap based on incident volume, business impact, and resolution complexity.
Gap Scoring Matrix:
| Factor | Weight | Score Range |
| Incident volume (90 days) | 40% | 1-5 based on count |
| Average priority of incidents | 25% | 1-5 (P1=5, P5=1) |
| Failed search frequency | 20% | 1-5 based on count |
| Negative feedback count | 15% | 1-5 based on count |
Step 9: Create Knowledge Gap Records
Log identified gaps as tasks for knowledge authors.
Using MCP:
Tool: SN-Create-Record
Parameters:
table_name: kb_submission
data:
short_description: "Knowledge Gap: DNS Configuration Troubleshooting"
description: "Gap Analysis identified 47 resolved incidents in 90 days for DNS configuration issues with no matching KB article. Top search terms: 'dns settings', 'dns not resolving', 'configure dns'. Priority score: 4.2/5."
kb_knowledge_base: [target_kb_sys_id]
category: Network
assignment_group: Knowledge AuthorsUsing REST API:
POST /api/now/table/kb_submission
Content-Type: application/json
{
"short_description": "Knowledge Gap: DNS Configuration Troubleshooting",
"description": "Gap Analysis identified 47 resolved incidents...",
"kb_knowledge_base": "[target_kb_sys_id]",
"category": "Network",
"assignment_group": "[group_sys_id]"
}Tool Usage
MCP Tools Reference
| Tool | When to Use |
SN-Query-Table | Query incidents, articles, feedback, and search logs; retrieve bounded fields for local aggregation |
SN-Natural-Language-Search | Natural language searches for topic coverage |
SN-Create-Record | Create knowledge submission records for gaps |
SN-Add-Work-Notes | Document analysis findings on existing records |
REST API Reference
| Endpoint | Method | Purpose |
/api/now/table/incident | GET | Query resolved incidents |
/api/now/stats/incident | GET | Aggregate incident data |
/api/now/table/kb_knowledge | GET | Check existing article coverage |
/api/now/table/search_log | GET | Analyze failed search queries |
/api/now/table/kb_feedback | GET | Review negative article feedback |
/api/now/table/kb_submission | POST | Create knowledge gap records |
Best Practices
- Run Regularly: Perform gap analysis monthly or quarterly to stay ahead of emerging topics
- Use Multiple Signals: Combine incident data, search logs, and feedback for a complete picture; no single source tells the whole story
- Focus on Resolved Incidents: Only analyze closed/resolved incidents where the resolution is documented in close notes
- Engage SMEs: Share gap findings with subject matter experts who can validate and prioritize article creation
- Track Deflection Impact: Measure incident deflection rates before and after filling identified gaps
- Consider Self-Service: Prioritize gaps that would enable end-user self-service over internal-only documentation
- Filter Out Noise: Exclude one-off incidents and focus on recurring patterns with 5+ occurrences
Troubleshooting
"Search log table is empty or inaccessible"
Cause: Search analytics plugin not activated or search logging not enabled
Solution: Verify com.glide.search is active and the property glide.ts.search.log is set to true
"Incident categories do not align with KB categories"
Cause: Different taxonomies used for incident classification vs. knowledge categorization Solution: Create a mapping table between incident categories/subcategories and KB category labels for accurate cross-referencing
"Too many incidents returned without KB links"
Cause: Knowledge-centered service (KCS) practices not enforced; agents not linking articles Solution: Filter by assignment groups that are expected to use KCS and focus on categories where articles exist but are not being attached
"Aggregate queries time out"
Cause: Large incident tables with broad date ranges Solution: Narrow the date range to 30 days or filter by specific assignment groups or categories
Examples
Example 1: Network DNS Gap Discovery
Analysis:
- 47 resolved incidents for "DNS" subcategory in 90 days
- 23 failed knowledge searches for "dns settings" and "dns not resolving"
- Zero published KB articles matching DNS configuration
- Average incident priority: P3
Gap Score: 4.2/5 (high volume, frequent failed searches)
Recommendation: Create a comprehensive DNS troubleshooting article covering common configuration errors, resolution steps, and escalation paths. Assign to Network Operations knowledge author.
Example 2: New Employee Onboarding Gap
Analysis:
- 112 incidents for "Account Setup" category in 90 days
- 45 failed searches for "new employee access", "first day setup", "onboarding checklist"
- 2 existing KB articles found but both rated "not helpful" (8 negative feedback entries)
- Existing articles are 18 months old and reference deprecated tools
Gap Score: 4.8/5 (very high volume, existing content outdated)
Recommendation: Retire outdated articles and create a new comprehensive onboarding guide. Coordinate with HR and IT to cover all provisioning steps. High priority due to impact on new hire productivity.
Example 3: CSM Product Return Gap
Analysis:
- 38 customer service cases for "Product Returns" with no knowledge flag
- 15 failed portal searches for "return policy", "return label", "refund status"
- No published articles in the external customer knowledge base
Gap Score: 3.9/5 (moderate volume, customer-facing impact)
Recommendation: Create a customer-facing article covering return eligibility, process steps, label generation, and refund timelines. Publish to the external knowledge base for self-service deflection.
Related Skills
knowledge/duplicate-detection- Clean up redundant articles before gap analysisknowledge/content-recommendation- Surface existing articles for incidentsknowledge/article-generation- Generate articles from resolved incidents to fill gapsknowledge/gap-grouping- Cluster and prioritize identified gaps by topic
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

