Using Docs Kit
lobehub/lobe-ui
Set up and author a documentation site with @lobehub/docs-kit (the lobedocs CLI, React Router + Vite static docs used by ui.lobehub.com).
Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-dynamo/dynamo fern-navigation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fern-navigation .claude/skills/fern-navigation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .claude/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-dynamo/dynamo fern-navigation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/fern-navigation .agents/skills/fern-navigation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .agents/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-dynamo/dynamo fern-navigation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/fern-navigation .cursor/skills/fern-navigation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .cursor/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ai-dynamo/dynamo.git --path .agents/skills/fern-navigation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-dynamo/dynamo fern-navigation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/fern-navigation .gemini/skills/fern-navigation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .gemini/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ai-dynamo/dynamo fern-navigationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/fern-navigation .github/skills/fern-navigation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .github/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ai-dynamo/dynamo --skill fern-navigation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-dynamo/dynamo fern-navigation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/fern-navigation .opencode/skills/fern-navigation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fern-navigation" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/fern-navigation into .opencode/skills/fern-navigation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fern-navigation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fern-navigationKnowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…
Fern Navigation is an agent skill from ai-dynamo/dynamo. Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants, versions, products, changelogs, and site-level settings, plus per-page frontmatter. Use when designing or changing the shape of a Fern docs site (adding a tab, splitting into products, cutting a version, restructuring the sidebar, moving the changelog, tuning the navbar/layout/theme) or when a user asks "what options…
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `manifest.json`, `references/navigation-reference.md` and `scripts/refresh_navigation.py`).
It sits in Development, covering Changelog and release notes, Markdown and Static sites and blogs. The repository describes itself as: A Datacenter Scale Distributed Inference Serving Framework. The licence is Apache-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f54f2a4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
schema.buildwithfern.devFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fern Navigation loads about 2.2k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 185 tokens; SKILL.md has 918 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ai-dynamo/dynamo at commit f54f2a4, republished under its Apache-2.0 licence (© ai-dynamo). 918 words, ~2,183 tokens.
.claude/skills/fern-navigation/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: CC-BY-4.0
-->
Fern documentation is configured at two levels: site-level in docs.yml (and, for multi-product
or multi-version sites, in per-product / per-version .yml files), and page-level in each .md /
.mdx file's frontmatter. This skill catalogs the whole site-structure surface — what each building
block does, when to reach for it, and the exact YAML — and points to
references/navigation-reference.md for every field, default,
and copy-paste example.
This skill is structure & configuration knowledge. In-page MDX components (<Card>, <Steps>,
<Tabs> content tabs, <Accordion>, callouts…) belong to the fern-components skill. Page
placement conventions, the style guide, SPDX headers, terminology, and this repo's .md-vs-.mdx
rule belong to the dynamo-docs skill. Use all three together when authoring.
Fern overloads several words. Keep the layers straight before touching config:
| Term | Layer | Where it lives | Owned by |
|---|---|---|---|
<Tabs> / <Tab> | in-page content tabs | inside a .mdx body | fern-components |
tabs: navigation | site-level nav tabs | docs.yml top-level + navigation: | this skill |
<Versions> component | in-page version-conditional content | inside a .mdx body | fern-components |
versions: config | site-wide version switcher | docs.yml + versions/*.yml | this skill |
Fern composes each page's URL by concatenating a slug from every level of the hierarchy it passes through, outermost first:
/<product>/<version>/<tab>/<section>/<folder>/<page>Each level auto-generates a slug from its display name (or filename, for folders). Any level can
slug: rename itself, skip-slug: true drop itself from the path, or a page's frontmatter slug:
override the whole section/folder portion (product/version prefix is preserved). Understanding this
composition is the key to predicting and controlling URLs — see the reference's Slugs section.
Decide by how different two bodies of content are, from lightest to heaviest:
| You want to… | Reach for | Notes |
|---|---|---|
| Order pages in the sidebar | sections / pages / folders | The default. Folders auto-discover files. |
| Auto-build nav from a directory tree | folder: | index.md(x) becomes the section overview; subdirs nest. |
| Group whole content areas (Guides vs API Ref) | tabs | Top-level tabs:, referenced in navigation:. |
| Same area, different audience/perspective (REST vs GraphQL, dev vs PM) | tab variants | variants: instead of layout:; supports RBAC. |
| Multiple releases of the same docs | versions | Dropdown switcher; versions/*.yml. Team plan. |
| Multiple distinct products under one site | products | Product switcher; products/*.yml. Team plan. Can nest versions. |
| A dated log of changes | changelog | A changelog/ folder, surfaced as a tab or a section. |
| A root page before any product | landing-page: | Independent of products/versions. |
| Link out (GitHub, dashboard) from nav | href tab / external product / navbar link | No internal content. |
Rules of thumb:
navigation/tabs and splits config into files. Use them only for
genuinely separate products, not for two sections of one product.products: (or versions:), you MUST
remove the top-level navigation: and tabs: from docs.yml — they move into the per-product /
per-version files. fern check rejects a navigation block coexisting with products: and would
otherwise render an empty site.href tabs cannot have navigation, tabs, layout, or variants.layout, variants, or href — never href + content.hidden.changelog/ must be named exactly that, files live flat in its root (no subdirs), and file
names must be dated (YYYY-MM-DD, MM-DD-YYYY, or MM-DD-YY). Section-level changelogs can't nest
under an api entry.references/navigation-reference.md mirrors the eight pages of
Fern's navigation/ docs section, with full YAML and every field:
navigation: tree, nesting, folder auto-discovery, slugs,
hiding, availability badges, collapsed state, sidebar icons, external links.tabs: + navigation:, all tab props, variants, placement/style.versions/*.yml, the switcher, availability, slugs, audiences, hiding, styling.products/*.yml, internal vs external, the switcher, versioned products, landing
page, audiences, conditional content, search scoping, selector CSS.changelog/ folder, tab vs section placement, entry files, tags, layouts, RSS.docs.yml surface: colors, logo, typography, layout, theme,
navbar/footer links, instances, settings (search etc.), page actions, redirects, metadata,
analytics, edit-this-page, Ask Fern, agents/llms.txt, check rules.docs.yml (and any products/ or versions/ files) —
dynamo-docs owns where pages live; this skill owns their arrangement.redirects: for moved pages, and remember check.rules.missing-redirects.fern check (broken links, missing redirects, config coherence) before publish.Fern's config schema drifts. The source of truth is fern-api/docs (branch main),
fern/products/docs/pages/navigation/*.mdx. manifest.json records each tracked page's git blob
SHA as of the last sync. To check for drift and refresh:
python3 scripts/refresh_navigation.py --check # what changed upstream?
python3 scripts/refresh_navigation.py --fetch --out /tmp/fern # download changed pages
# ...update references/navigation-reference.md + this SKILL.md from those...
python3 scripts/refresh_navigation.py --sync # record new SHAs as currentFor anything load-bearing, verify field names against the live
docs-yml schema or the current docs rather than
trusting a summary — this surface changes.
© ai-dynamo, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in .agents/skills/fern-navigation of ai-dynamo/dynamo.
Open the folder on GitHubat commit f54f2a4
Fern Navigation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fern Navigation this skillai-dynamo/dynamo | 8.3k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Using Docs Kitlobehub/lobe-ui | 2.2k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Changesetwithastro/astro | 63k | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| Create Manifestmindfold-ai/Trellis | 15k | — | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Releasehyhmrright/brooks-lint | 1.5k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Changelog Writerjihe520/mindpocket | 350 | — | ~1.1k | Automated safety check: Pass | None |
lobehub/lobe-ui
Set up and author a documentation site with @lobehub/docs-kit (the lobedocs CLI, React Router + Vite static docs used by ui.lobehub.com).
withastro/astro
Create a changeset for the Astro monorepo. An agent skill from withastro/astro.
mindfold-ai/Trellis
Create a Trellis migration manifest and matching docs-site changelogs for a target release by analyzing commits since the previous release.
hyhmrright/brooks-lint
Cut a brooks-lint release: set the version in package.json, propagate it across all four plugin manifests and every version-bearing text file (README badges, docs site metadata), write the CHANGELOG…
jihe520/mindpocket
A skill your agent uses when the user wants to create or update a changelog, release notes, product updates, or an MDX changelog page from git history or local code changes.
apollographql/apollo-mcp-server
Syncs MCP Apps documentation with the @apollo/client-ai-apps changelog.
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
ai-dynamo/dynamo
Knowledge of Fern's built-in MDX component library (accordions, callouts, cards, steps, tabs, code blocks, API-reference snippets, and more) for authoring docs pages.
ai-dynamo/dynamo
Drives persistent Claude Code, Codex, or OpenCode agent sessions through a Dynamo OpenAI/Anthropic-compatible endpoint over Agent Client Protocol (ACP).
ai-dynamo/dynamo
Benchmark and profile the Dynamo frontend (dynamo.frontend HTTP + tokenizer + KV router) against mock workers (dynamo.mocker).
ai-dynamo/dynamo
Selects and freezes a question-driven AIPerf workload, objective, load policy, and Kubernetes execution manifest for a successfully deployed Dynamo candidate.
ai-dynamo/dynamo
Sets up a structured debugging session for a Dynamo bug — pull the report from a Linear ticket, GitHub issue, or pasted text, capture the environment, create a persistent worklog markdown file, and…
Categories
Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…. Fern Navigation is an agent skill from ai-dynamo/dynamo.yml files) using sections, pages, folders, tabs, tab variants, versions, products, changelogs, and site-level settings, plus per-page frontmatter.
Fern Navigation fits situations like: changing the shape of a Fern docs site (adding a tab; splitting into products; cutting a version; restructuring the sidebar.
Run `npx skills add ai-dynamo/dynamo --skill fern-navigation -a claude-code`. Or copy the skill folder (.agents/skills/fern-navigation in ai-dynamo/dynamo) into .claude/skills/fern-navigation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-dynamo/dynamo --skill fern-navigation -a codex`. Or copy the skill folder (.agents/skills/fern-navigation in ai-dynamo/dynamo) into .agents/skills/fern-navigation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ai-dynamo/dynamo --skill fern-navigation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fern-navigation, .gemini/skills/fern-navigation, .github/skills/fern-navigation and .opencode/skills/fern-navigation in your project.
Going by SKILL.md and its folder, Fern Navigation needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: schema.buildwithfern.dev. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Fern Navigation is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Fern Navigation: Using Docs Kit (lobehub/lobe-ui, 2.2k stars), Changeset (withastro/astro, 63k stars), Create Manifest (mindfold-ai/Trellis, 15k stars) and Release (hyhmrright/brooks-lint, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-dynamo (a GitHub organization) maintains it in ai-dynamo/dynamo, which has 8,250 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.
Source: ai-dynamo/dynamo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.