Docsbook
← Back to catalog
observabilityprorequires Docsbook MCP

docs-question-clusterer

Clusters every user question asked to the AI chat into themed topic groups, then cross-references against the doc graph to label each cluster as content_gap (no doc covers it) or ai_chat_failure (doc exists but chat couldn't surface it). Goes deeper than docs-gap-finder by including answered-but-not-helpful questions. Requires PRO plan.

Install & use this skill

Pick your AI client — install this single skill and call it.

1. Install
npx skills add Docsbook-io/docs-skills --skill docs-question-clusterer -a claude-code
2. Use
/docs-question-clusterer

Invoke as a slash command in chat.

Or: runtime discovery via Docsbook MCP

Already connected to the Docsbook MCP server? Skip install — ask your agent to load this skill on demand.

@docsbook find_skill "docs-question-clusterer"

docs-question-clusterer — Group every user question and label what's missing

docs-gap-finder already exists and finds what to write next by combining get_failed_searches + get_ai_unanswered + get_popular_searches. This skill is deeper:

This distinction matters because the two failures need different actions:

Distinction Action
content_gap invoke_skill: docs-create with a draft outline.
ai_chat_failure invoke_skill: docs-tune-ai-chat — fix retrieval/prompt, not content.

When to run#

Workflow#

Standard four-stage docs-insights pipeline. Slice = questions. See docs-utm-analyzer for canonical step-by-step.

What this skill catches#

Pattern Example finding
content_gap (no page covers it) 17 questions about "how to test webhook locally without ngrok". No doc page mentions local testing. → invoke_skill: docs-create with draft outline.
ai_chat_failure (page exists, chat misses it) 9 questions about "set custom logo", page docs/design/style/branding.md covers it perfectly. AI couldn't find it. → invoke_skill: docs-tune-ai-chat.
Coverage signal (positive) 30 questions about "pricing", page docs/pricing.md answers ≥ 80% well. → info, validate.

Guardrails#

Output for downstream consumption#

Each cluster finding's suggested_actions[]:

Acceptance criteria#

Same shape as docs-utm-analyzer. Coverage score is reported per cluster so the actor can sort by impact (high coverage_score × high question_count = highest-value AI-chat fix).

Arguments#

Argument Type Default Description
workspace string required id or owner/repo
period string 30d 14d / 30d
min_cluster_size number 5 Drop clusters below this
View source on GitHub →Browse full catalog repo →
Keywords
questionsai-chatgapclusteringthemescoveragerag
MCP tools used
get_ai_questionsget_ai_unansweredget_negative_feedbackget_failed_searchesget_popular_searchesget_workspace