Use when the user needs operational guidance from Longhorn docs: installation, upgrade, settings, UI steps, or version-specific troubleshooting. Do NOT use for source code internals or controller behavior.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: longhorn-user-docs description: > Use when the user needs operational guidance from Longhorn docs: installation, upgrade, settings, UI steps, or version-specific troubleshooting. Do NOT use for source code internals or controller behavior. compatibility: opencode metadata: repos: longhorn (website) doc_source_root: longhorn/website/content/docs url: https://longhorn.io/docs version_format: semver-without-v-prefix version_policy: development: latest-active-only troubleshooting: user-specified-or-latest latest_detection: semver-max-under-docs-root version_normalization: strip_v_prefix: true allow_major_minor_only: true major_minor_resolution: pick_max_micro_with_same_major_minor version: "1.2"
Longhorn User Docs (Version-Aware)
What I do
- Read Longhorn user documentation from local Markdown sources under
longhorn/website/content/docs. - Pick the correct docs version based on request intent:
- Development: always use the latest active version.
- Troubleshooting: use the user-provided version if present; otherwise use the latest active version.
- Normalize versions:
- Strip
vprefix (e.g.v1.10.2->1.10.2). - Resolve
MAJOR.MINOR(e.g.1.10) toMAJOR.MINOR.<max-micro>available in docs.
- Strip
When to use me
Use this skill when:
- You need operational guidance from Longhorn docs (installation, upgrade, settings, UI steps).
- You need troubleshooting guidance and must avoid mixing behaviors across versions.
- You need to update docs and should target the latest version docs.
Do NOT use this skill when:
- The question is about source code internals (controllers, CRDs generation, engine behavior).
- The question is about implementation details that are not documented in user docs.
Documentation source layout
Primary local source root
- Active versions:
longhorn/website/content/docs/<version>/...
- Archived versions:
longhorn/website/content/docs/archives/<version>/...
Version naming
- Versions are directories like
1.11.0,1.10.2(novprefix).
Common structure
_index.mdfiles define section entry points (Hugo).- Content paths are typically lowercase with hyphens.
- Troubleshooting content usually lives under:
<version>/troubleshoot/<version>/v2-data-engine/troubleshooting.md
Version rules
Step 1: Identify intent
- Development: feature behavior, docs update, recommended configuration for new work.
- Troubleshooting: incident triage, error logs, operational break/fix.
Step 2: Determine version input
- Development:
- Always use
<latest>.
- Always use
- Troubleshooting:
- If the user provides a version string, use it (after normalization).
- If not provided, use
<latest>.
Step 3: Normalize version (troubleshooting only, when provided)
Normalization rules:
- Strip a leading
v(e.g.v1.10.2->1.10.2). - If version is
MAJOR.MINOR.PATCH, use it as-is. - If version is
MAJOR.MINOR(e.g.1.10):- Resolve to
MAJOR.MINOR.<max-micro>found under active docs. - If not found under active docs, try archives.
- Resolve to
If a normalized version does not exist under both active docs and archives:
- Fall back to
<latest>and clearly label it as fallback.
Step 4: Latest version detection
Define <latest> as:
- The maximum semantic version directory directly under:
longhorn/website/content/docs/
- Ignore:
archives/- any non-semver entries (files or directories).
Fallback behavior
Troubleshooting version fallback order
longhorn/website/content/docs/<normalized-user-version>/...longhorn/website/content/docs/archives/<normalized-user-version>/...longhorn/website/content/docs/<latest>/...(explicitly warn this may differ)
Development fallback order
longhorn/website/content/docs/<latest>/...
Common operations
List available documentation versions
Goal: identify <latest> and valid target versions.
Procedure:
- Look under
longhorn/website/content/docs/. - Collect directory names that match semantic version format:
MAJOR.MINOR.PATCH(digits and dots only, e.g.1.11.0).
- Exclude:
archives/- any non-semver entries (files like
_index.md, or directories that do not matchMAJOR.MINOR.PATCH).
- Sort the collected versions by semantic version order.
- The maximum entry is
<latest>.
Expected outcome:
- A list of active versions
<latest>chosen as the semver maximum.
Resolve a MAJOR.MINOR version to the max micro (patch)
Goal: normalize user input like 1.10 to 1.10.<max-micro>.
Inputs:
user_version: may bev1.10.2,1.10.2, or1.10.
Procedure:
- Normalize prefix:
- If
user_versionstarts withv, strip it.
- If
- If
user_versionisMAJOR.MINOR.PATCH, use it as-is. - If
user_versionisMAJOR.MINOR:- Scan active versions under
docs/and select all versions whose prefix matchesMAJOR.MINOR.. - Choose the maximum
PATCHwithin that set. - If none found under active versions, repeat the scan under
docs/archives/.
- Scan active versions under
- If still not found:
- Fall back to
<latest>and label as fallback.
- Fall back to
Example:
- Available active versions include:
1.10.0,1.10.1,1.10.2 - User provides:
v1.10 - Normalization:
- strip
v->1.10 - resolve ->
1.10.2
- strip
Find troubleshooting sections within a version
Goal: quickly locate the most likely troubleshooting pages.
Procedure:
- Check these paths first (if they exist):
.../<version>/troubleshoot/.../<version>/v2-data-engine/troubleshooting.md
- Then expand by reading section
_index.mdfiles to discover links.
Guardrails
Do not mix versions
- Never combine steps, settings, or UI screenshots from different doc versions in a single answer.
- If you must compare versions, explicitly separate content by version blocks:
- "Version A: ..."
- "Version B: ..."
- When you detect conflicting guidance across versions:
- prefer the selected version (exact or latest)
- mention that other versions differ and provide the alternative as a separate note
Always include version context in the answer
For any doc-based answer, include:
- "Docs version: <version> (<reason>)"
- "Source: longhorn/website/content/docs/<version>/..." (or
archives/<version>)
Minimum requirement:
- At least one source path must be included per answer when the guidance is taken from docs.
Troubleshooting default-to-latest must be explicit
If the user did not provide a version for troubleshooting:
- Always add a line:
- "Docs version: <latest> (no user version provided; default to latest)"
- Avoid wording that implies it is an exact match to the user's environment.
Version normalization rules are mandatory
- Always strip a leading
vfrom user-provided versions. - If the user provides
MAJOR.MINORonly:- always resolve to
MAJOR.MINOR.<max-micro>using available directories - do not guess micro numbers that do not exist in the docs tree
- always resolve to
If exact version docs are missing
When the user specifies a version but it is not found:
- Try
docs/<version>/ - Try
docs/archives/<version>/ - Fall back to
<latest>
In this case, always include:
- A clear fallback statement
- A warning that behaviors and UI steps may differ
Keep answers aligned with docs scope
- Prefer procedural steps and configuration guidance that are explicitly documented.
- If the docs do not cover the needed detail:
- say it is not documented in user docs
- suggest what to verify (e.g. actual Longhorn version, UI state, setting values, logs)
- avoid inventing undocumented flags or settings
Response templates (version annotation)
Development (always latest)
- "Docs version: <latest> (development rule: latest)"
- "Source: longhorn/website/content/docs/<latest>/..."
Troubleshooting with user-provided version (exact)
- "Docs version: <normalized> (user-specified)"
- "Source: longhorn/website/content/docs/<normalized>/..."
- If using archives:
- "Source: longhorn/website/content/docs/archives/<normalized>/..."
Troubleshooting with user-provided MAJOR.MINOR (resolved)
- "Docs version: <resolved> (resolved from <major.minor>)"
- "Source: longhorn/website/content/docs/<resolved>/..."
- If resolved from archives:
- "Source: longhorn/website/content/docs/archives/<resolved>/..."
Troubleshooting without user version (use latest)
- "Docs version: <latest> (no user version provided; default to latest)"
- "Source: longhorn/website/content/docs/<latest>/..."
Troubleshooting fallback to latest (not found)
- "Docs version: <latest> (fallback; requested version <normalized> not found under docs/ or archives/)"
- "Warning: behaviors and UI steps may differ across versions."
- "Source: longhorn/website/content/docs/<latest>/..."
References
- https://longhorn.io/docs
- Local docs root:
longhorn/website/content/docs
More by COLDTURNIP
View allUse when asked how make targets work in Longhorn repos, adding a new build task, debugging a Dapper build failure, or unfamiliar with why Makefiles are so minimal.
Lints Longhorn markdown execution plans for required step contract fields. Minimal contract.
Use when modifying a CRD schema or gRPC proto definition to assess impact, when a K8s resource is stuck in an unexpected state and the responsible controller is unknown, or when tracing the call chain between Manager and Instance Manager.
