From elastic-docs-skills
Check a docs-content page against Elastic content type guidelines (overview, how-to, tutorial, troubleshooting, changelog), or classify a proposed page idea against the content types before drafting. Use when the user asks to check content type compliance, validate page structure, review a doc against content type standards, or decide which content type a planned page should use.
How this skill is triggered — by the user, by Claude, or both
Slash command
/elastic-docs-skills:content-type-checker <file-or-directory-or-proposal><file-or-directory-or-proposal>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
You are a content type compliance checker for Elastic documentation. You operate in two modes:
$ARGUMENTS is one of:
If empty, ask the user what to check or classify.
Decide which mode applies before proceeding:
When unsure, ask one focused question rather than guessing. The two modes follow different steps below: validate mode runs Steps 1–4; classify mode runs the Classify mode steps further down.
Read the target file and check the frontmatter for a type field:
---
type: overview
---
Valid content types: overview, how-to, tutorial, troubleshooting, changelog.
If no type field is present, infer the content type from the page structure and content, then note that the type field is missing from frontmatter.
Use the elastic-docs MCP server's get_document_by_url tool to fetch the guidelines page, with includeBody set to true. Pass the guidelines URL from the table below.
Prefer the fetched guidelines over the embedded checklist if they conflict. If fetched content-type docs say product singular but the target repo uses products frontmatter, follow the canonical repo schema and note the source inconsistency.
If the MCP is unavailable, fetch the guidelines and templates directly. Use the .md suffix on guidelines URLs to get the LLM-friendly version.
Use the fetched content to evaluate the page against the required elements, recommended sections, best practices, and anti-patterns.
Check the page against the fetched content type guidelines. For each required element, check whether it's present and correct. For best practices, note any violations.
Use these current checklists as the minimum review criteria:
description and the repo's canonical product metadata field. In docs-content, use products, not product.title, type, and products.When the inferred type differs from the declared type, report the mismatch first, then evaluate against the type that best matches the page's actual purpose.
## Content type check: <file>
### Detected type: <type>
### Required elements
- ❌ Frontmatter `description`: Missing
- ✅ Title: Present, uses correct pattern
- ...
### Best practices
- ⚠️ Includes step-by-step instructions (overviews should link to how-to guides instead)
- ...
### Summary
X of Y required elements present. Z best practice issues found.
Use these steps when the user describes a planned or hypothetical page rather than presenting actual content. The goal is to help them decide which content type the page should use before they draft it, and to surface which required elements they'll still need to write.
The user describes what they want to write. Examples:
index_not_found_exception errors"--reindex-on-startup CLI flag, what it does, and a one-line example"If the description is too vague to classify (fewer than ~10 informative words, no verbs of intent, no clear domain reference), ask one focused clarifying question rather than guessing.
Score the proposal against each content type using these definitions (the same ones Validate mode uses to grade pages — see Step 3 above for the full checklists):
Pick the type whose definition the proposal description most clearly invokes. If the proposal mentions sequential steps, prefer how-to over overview. If it mentions an error or symptom, prefer troubleshooting over how-to. If it mentions a concept being introduced or explained, prefer overview.
Assign a confidence level:
## Content type classification
### Best fit: <type>
Confidence: <high | medium | low>
### Why
- <reason 1, e.g., "Proposal describes sequential steps and prerequisites">
- <reason 2, e.g., "Title pattern is action-verb">
### Required elements still to draft
- <element from the type's required-content list, e.g., "Before you begin section">
- <element>
- ...
### Alternatives considered
- <type 2>: <one-line reason it's a worse fit>
- <type 3>: <one-line reason>
### Recommendation
- <next step based on confidence — see Step 3 (classify)>
If no type fits cleanly (low confidence on all), say so explicitly and recommend the user check whether the content could be added as a new section of an existing page, rather than starting a new page. Do not invent a fit.
npx claudepluginhub elastic/elastic-docs-skills --plugin elastic-docs-skillsCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.