Unverified Commit 6243506b authored by ishandhanani's avatar ishandhanani Committed by GitHub
Browse files

chore: consolidate 3 docs skills into 1, add .claude codeowners (#6785)


Signed-off-by: default avatarIshan Dhanani <ishandhanani@gmail.com>
parent d24cfbe1
---
name: add-dynamo-docs
description: Add a new page to the Dynamo Fern docs site. Use when creating new documentation pages.
---
# Add a Dynamo Docs Page
Claude Code skill for adding a new page to the Dynamo Fern documentation site.
## Related Skills
| Skill | Use When |
|-------|----------|
| [rm-dynamo-docs](../rm-dynamo-docs/SKILL.md) | Removing an existing docs page |
| [update-dynamo-docs](../update-dynamo-docs/SKILL.md) | Editing an existing docs page |
---
## Branch Rule
**ALL edits happen on `main` (or a feature branch based on `main`).**
The `docs-website` branch is CI-managed and must **never** be edited by hand.
## Working Directory
Must be in the `dynamo` repo (not `dynamo-tpm`). Architecture details: `docs/README.md`.
## When Invoked
### 1. Gather Information
Ask for:
- **Page title** — appears in the sidebar and as the H1
- **Target section** — which sidebar section (e.g., `Getting Started`, `User Guides`, `Components`)
- **Filename** — kebab-case `.md` file (e.g., `my-new-feature.md`)
- **Subdirectory** — which `docs/` subdirectory (e.g., `getting-started`, `features`, `components`)
### 2. Create the Page
Create `docs/<subdirectory>/<filename>.md` with SPDX header and Fern frontmatter:
```markdown
---
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
title: <Page Title>
---
# <Page Title>
<!-- Content goes here -->
```
### 3. Add Navigation Entry
Edit `docs/index.yml` and add the page under the correct section:
```yaml
- page: <Page Title>
path: <subdirectory>/<filename>.md
```
**Section locations in `index.yml`** (search for the comment banner):
- `# ==================== Getting Started ====================`
- `# ==================== Kubernetes Deployment ====================`
- `# ==================== User Guides ====================`
- `# ==================== Backends ====================`
- `# ==================== Components ====================`
- `# ==================== Integrations ====================`
- `# ==================== Documentation ====================`
- `# ==================== Design Docs ====================`
- `# ==================== Blog ====================`
- `# ==================== Hidden Pages ====================`
### 4. Write Content
Use standard **GitHub-flavored markdown**. For callouts, use GitHub's native syntax — CI auto-converts to Fern format:
```markdown
> [!NOTE]
> Helpful context for the reader.
> [!WARNING]
> Something the reader should be careful about.
> [!TIP]
> A useful suggestion.
```
**Callout mapping** (GitHub → Fern):
| GitHub Syntax | Fern Component |
|---|---|
| `> [!NOTE]` | `<Note>` |
| `> [!TIP]` | `<Tip>` |
| `> [!IMPORTANT]` | `<Info>` |
| `> [!WARNING]` | `<Warning>` |
| `> [!CAUTION]` | `<Error>` |
Reference images from `docs/assets/`:
```markdown
![Diagram](../assets/my-diagram.png)
```
### 5. Validate
```bash
fern check
fern docs broken-links
```
### 6. Preview Locally (Optional)
```bash
fern docs dev
```
Opens a local preview at `http://localhost:3000` with hot reload. No token required.
### 7. Commit
```bash
git add docs/<subdirectory>/<filename>.md docs/index.yml
git commit -s -m "docs: add <page-title> page"
```
## Debugging
### `fern check` fails
- **Invalid YAML in `index.yml`:** Check indentation — nav entries use 2-space indent. A `- page:` must be inside a `contents:` block.
- **Missing file:** The `path:` in `index.yml` must match the actual file location. Paths are relative to `docs/` (e.g., `getting-started/quickstart.md`).
### `fern docs broken-links` reports errors
- **Broken internal link:** A markdown link reference points to a file that doesn't exist. Fix the path or remove the link.
- **Anchor not found:** A `#section-heading` link doesn't match any heading in the target page.
### CI fails after merge
- **MDX parse error:** Angle-bracket URLs like `<https://example.com>` break MDX parsing. Use `[text](https://example.com)` instead.
- **Broken links check:** The `detect_broken_links.py` job checks relative links across all docs. If your new page links to a file that doesn't exist yet, CI will fail.
- **Fern publish error:** Check the Actions tab for the `Fern Docs` workflow. Common causes: expired `FERN_TOKEN`, invalid `fern/docs.yml` syntax, or a file referenced in `index.yml` that wasn't synced to `docs-website`.
### Page doesn't appear on the live site
- **Missing nav entry:** The page exists but isn't in `docs/index.yml`. Add it.
- **Hidden section:** The page is inside a `hidden: true` section. It's accessible by direct URL but won't appear in the sidebar.
- **Sync delay:** After merge to `main`, the sync-dev workflow takes a few minutes to publish.
## Key References
| File | Purpose |
|------|---------|
| `docs/index.yml` | Navigation tree — add entries here |
| `docs/` | Content directory — create pages here |
| `docs/assets/` | Images, SVGs, fonts |
| `fern/docs.yml` | Fern site configuration |
| `fern/convert_callouts.py` | Callout conversion rules (GitHub → Fern) |
| `docs/README.md` | Full architecture guide |
---
name: dynamo-docs
description: Maintain Dynamo Fern docs site -- add, update, move, or remove pages. Use for any documentation changes.
---
# Dynamo Docs Maintenance
Unified skill for adding, updating, moving, and removing pages on the Dynamo Fern documentation site.
## Branch Rule
**ALL edits happen on `main` (or a feature branch based on `main`).**
The `docs-website` branch is CI-managed and must **never** be edited by hand.
## Operations
### Add a Page
1. Gather: page title, target section, filename (kebab-case `.md`), subdirectory under `docs/`.
2. Create `docs/<subdirectory>/<filename>.md`:
```markdown
---
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
title: <Page Title>
---
# <Page Title>
```
3. Add a nav entry in `docs/index.yml` under the correct section:
```yaml
- page: <Page Title>
path: <subdirectory>/<filename>.md
```
### Update a Page
1. Locate by file path, page title, or keyword search (`grep -rn` in `docs/`).
2. **Content only** -- edit the markdown file directly.
3. **Title change** -- update both the frontmatter `title:` and the `- page:` name in `docs/index.yml`.
4. **Section move** -- `git mv` the file, remove old nav entry, add new one, update all incoming links.
### Remove a Page
1. Find incoming links: `grep -r "<filename>" docs/ --include="*.md"`.
2. `git rm docs/<subdirectory>/<filename>.md`.
3. Remove the `- page:` block from `docs/index.yml`. If it was the last page in a section, remove the entire `- section:` block.
4. Fix or remove all incoming links found in step 1.
---
## Content Guidelines
Use GitHub-flavored markdown. CI auto-converts callouts to Fern format:
| GitHub Syntax | Fern Component |
|---|---|
| `> [!NOTE]` | `<Note>` |
| `> [!TIP]` | `<Tip>` |
| `> [!IMPORTANT]` | `<Info>` |
| `> [!WARNING]` | `<Warning>` |
| `> [!CAUTION]` | `<Error>` |
Reference images from `docs/assets/`.
## Section Banners in `index.yml`
Search for:
- `# ==================== Getting Started ====================`
- `# ==================== Kubernetes Deployment ====================`
- `# ==================== User Guides ====================`
- `# ==================== Backends ====================`
- `# ==================== Components ====================`
- `# ==================== Integrations ====================`
- `# ==================== Documentation ====================`
- `# ==================== Design Docs ====================`
- `# ==================== Blog ====================`
- `# ==================== Hidden Pages ====================`
## Validate
```bash
fern check
fern docs broken-links
```
Optional local preview: `fern docs dev` (localhost:3000, hot reload, no token).
## Commit
```bash
git add docs/
git commit -s -m "docs: <add|update|remove> <page-title>"
```
## Debugging
| Symptom | Fix |
|---|---|
| `fern check` YAML error | Check 2-space indent; `- page:` must be inside `contents:` |
| Missing/orphaned file | `path:` in `index.yml` must match actual file location |
| Broken links in CI | `grep -r "<filename>" docs/` and fix stale references |
| MDX parse error | Replace `<https://...>` with `[text](https://...)` |
| Page missing from site | Ensure nav entry exists in `index.yml`; allow a few minutes for sync |
## Key References
| File | Purpose |
|---|---|
| `docs/index.yml` | Navigation tree |
| `docs/` | Content directory |
| `docs/assets/` | Images, SVGs, fonts |
| `fern/docs.yml` | Fern site configuration |
| `fern/convert_callouts.py` | Callout conversion (GitHub -> Fern) |
| `docs/README.md` | Full architecture guide |
---
name: rm-dynamo-docs
description: Remove a page from the Dynamo Fern docs site. Use when deleting documentation pages.
---
# Remove a Dynamo Docs Page
Claude Code skill for removing a page from the Dynamo Fern documentation site.
## Related Skills
| Skill | Use When |
|-------|----------|
| [add-dynamo-docs](../add-dynamo-docs/SKILL.md) | Adding a new docs page |
| [update-dynamo-docs](../update-dynamo-docs/SKILL.md) | Editing an existing docs page |
---
## Branch Rule
**ALL edits happen on `main` (or a feature branch based on `main`).**
The `docs-website` branch is CI-managed and must **never** be edited by hand.
## Working Directory
Must be in the `dynamo` repo (not `dynamo-tpm`). Architecture details: `docs/README.md`.
## When Invoked
### 1. Identify the Page
Ask for the page to remove (accepts any of):
- File path (e.g., `docs/guides/old-page.md`)
- Page title (e.g., "Old Page")
- Topic keyword to search for
If given a title or keyword, search for the page:
```bash
# Search by title in navigation
grep -n "<title>" docs/index.yml
# Search by keyword in content
grep -rl "<keyword>" docs/
```
### 2. Find the Navigation Entry
Locate the page's entry in `docs/index.yml`:
```bash
grep -n "<filename>" docs/index.yml
```
Note the exact `- page:` block and its indentation level. If the page is the
sole entry in a `- section:` block, the entire section should be removed.
### 3. Check for Incoming Links
Search for references to this page from other docs:
```bash
# Search for the filename across all docs pages
grep -r "<filename>" docs/ --include="*.md"
# Also check the navigation file for any cross-references
grep -r "<filename>" docs/
```
Report any files that link to the page being removed — these links will break
and need updating.
### 4. Remove the Markdown File
```bash
git rm docs/<subdirectory>/<filename>.md
```
### 5. Remove the Navigation Entry
Edit `docs/index.yml` and delete the `- page:` block (and its `path:`
line). If this was the last page in a section, remove the entire `- section:`
block.
### 6. Fix Broken Incoming Links
For each file that linked to the removed page:
- Remove the link, or
- Redirect to a replacement page, or
- Leave a note about the removal
### 7. Validate
```bash
fern check
fern docs broken-links
```
### 8. Preview Locally (Optional)
```bash
fern docs dev
```
Opens a local preview at `http://localhost:3000` with hot reload. No token required.
### 9. Commit
```bash
git add -u docs/
git commit -s -m "docs: remove <page-title> page"
```
## Debugging
### `fern check` fails
- **Orphaned nav entry:** You deleted the file but left the `- page:` entry in `index.yml`. Remove it.
- **Empty section:** If the removed page was the only entry in a section, delete the entire `- section:` block from `index.yml`.
### `fern docs broken-links` reports errors
- **Incoming links to removed page:** Other pages still link to the deleted file. Search with `grep -r "<filename>" docs/` and update or remove those links.
### CI fails after merge
- **MDX parse error:** Angle-bracket URLs like `<https://example.com>` break MDX parsing. Use `[text](https://example.com)` instead.
- **Broken links check:** The `detect_broken_links.py` job found pages that still reference the removed file. Fix all incoming links before merging.
- **Fern publish error:** Check the Actions tab for the `Fern Docs` workflow. Common causes: expired `FERN_TOKEN`, invalid `fern/docs.yml` syntax.
### Page still appears on the live site
- **Sync delay:** After merge to `main`, the sync-dev workflow takes a few minutes to publish.
- **Cached version:** Fern CDN may cache the old page briefly. Hard-refresh or wait a few minutes.
## Key References
| File | Purpose |
|------|---------|
| `docs/index.yml` | Navigation tree — remove entries here |
| `docs/` | Content directory — delete pages here |
| `fern/docs.yml` | Fern site configuration |
| `docs/README.md` | Full architecture guide |
---
name: update-dynamo-docs
description: Update an existing page in the Dynamo Fern docs site. Use when editing content, titles, or moving pages between sections.
---
# Update a Dynamo Docs Page
Claude Code skill for updating an existing page in the Dynamo Fern documentation site.
## Related Skills
| Skill | Use When |
|-------|----------|
| [add-dynamo-docs](../add-dynamo-docs/SKILL.md) | Adding a new docs page |
| [rm-dynamo-docs](../rm-dynamo-docs/SKILL.md) | Removing an existing docs page |
---
## Branch Rule
**ALL edits happen on `main` (or a feature branch based on `main`).**
The `docs-website` branch is CI-managed and must **never** be edited by hand.
## Working Directory
Must be in the `dynamo` repo (not `dynamo-tpm`). Architecture details: `docs/README.md`.
## When Invoked
### 1. Locate the Page
Ask for the page to update (accepts any of):
- File path (e.g., `docs/guides/quickstart.md`)
- Page title (e.g., "Quickstart")
- Topic keyword to search for
If given a title or keyword, find the page:
```bash
# Search by title in navigation
grep -n "<title>" docs/index.yml
# Search by keyword in content
grep -rl "<keyword>" docs/
```
### 2. Read Current Content
Read the page and its navigation entry:
- The markdown file in `docs/`
- The corresponding entry in `docs/index.yml`
Note the current:
- **Title** (from frontmatter `title:` field)
- **Section** (which sidebar section it belongs to)
- **Path** (relative path in `index.yml`)
### 3. Apply Edits
Handle three types of changes:
#### Content Only
Edit the markdown file directly. No navigation changes needed.
#### Title Change
1. Update the `title:` field in the markdown frontmatter
2. Update the `- page:` display name in `docs/index.yml`
#### Section Move
1. Move the markdown file to the new subdirectory:
```bash
git mv docs/<old-subdir>/<file>.md docs/<new-subdir>/<file>.md
```
2. Remove the old `- page:` entry from `index.yml`
3. Add a new `- page:` entry under the target section in `index.yml`
4. Update the `path:` to reflect the new location
### 4. Check Incoming Links (If Path Changed)
If the file was moved, search for references that need updating:
```bash
# Search for the old path across all docs
grep -r "<old-filename>" docs/ --include="*.md"
grep -r "<old-filename>" docs/
```
Update all references to point to the new path.
### 5. Content Guidelines
Use standard **GitHub-flavored markdown**. For callouts, use GitHub's native syntax — CI auto-converts to Fern format:
```markdown
> [!NOTE]
> Helpful context for the reader.
> [!WARNING]
> Something the reader should be careful about.
```
**Callout mapping** (GitHub → Fern):
| GitHub Syntax | Fern Component |
|---|---|
| `> [!NOTE]` | `<Note>` |
| `> [!TIP]` | `<Tip>` |
| `> [!IMPORTANT]` | `<Info>` |
| `> [!WARNING]` | `<Warning>` |
| `> [!CAUTION]` | `<Error>` |
### 6. Validate
```bash
fern check
fern docs broken-links
```
### 7. Preview Locally (Optional)
```bash
fern docs dev
```
Opens a local preview at `http://localhost:3000` with hot reload. No token required.
### 8. Commit
```bash
git add docs/
git commit -s -m "docs: update <page-title>"
```
## Debugging
### `fern check` fails
- **Invalid YAML in `index.yml`:** Check indentation — nav entries use 2-space indent. A `- page:` must be inside a `contents:` block.
- **Missing file:** If you moved a page, the `path:` in `index.yml` must match the new location.
- **Duplicate entry:** The same page appears twice in `index.yml`. Remove the old entry after a section move.
### `fern docs broken-links` reports errors
- **Stale internal links:** After moving or renaming a page, other pages may still link to the old path. Search with `grep -r "<old-filename>" docs/` and update references.
- **Anchor not found:** A `#section-heading` link doesn't match any heading in the target page. Check if the heading text changed.
### CI fails after merge
- **MDX parse error:** Angle-bracket URLs like `<https://example.com>` break MDX parsing. Use `[text](https://example.com)` instead.
- **Broken links check:** The `detect_broken_links.py` job found stale references to the old path. Fix all incoming links before merging.
- **Fern publish error:** Check the Actions tab for the `Fern Docs` workflow. Common causes: expired `FERN_TOKEN`, invalid `fern/docs.yml` syntax, or a moved file that wasn't synced to `docs-website`.
### Changes don't appear on the live site
- **Title mismatch:** You updated the frontmatter `title:` but not the `- page:` name in `index.yml` (or vice versa). Keep them in sync.
- **Sync delay:** After merge to `main`, the sync-dev workflow takes a few minutes to publish.
## Key References
| File | Purpose |
|------|---------|
| `docs/index.yml` | Navigation tree — update entries here if title/path changes |
| `docs/` | Content directory — edit pages here |
| `docs/assets/` | Images, SVGs, fonts |
| `fern/docs.yml` | Fern site configuration |
| `fern/convert_callouts.py` | Callout conversion rules (GitHub → Fern) |
| `docs/README.md` | Full architecture guide |
......@@ -46,3 +46,6 @@ CODEOWNERS @ai-dynamo/Devops
/CONTRIBUTING.md @ai-dynamo/Devops
/LICENSE @ai-dynamo/Devops
/SECURITY.md @ai-dynamo/Devops
# Claude Code
/.claude/ @ishandhanani @alec-flowers @MatejKosec @dagil-nvidia @athreesh @nv-tusharma @ayushag-nv
......@@ -95,8 +95,6 @@ navigation:
path: features/multimodal/multimodal-sglang.md
- page: Tool Calling
path: agents/tool-calling.md
- page: SGLang for Agentic Workloads
path: backends/sglang/agents.md
- page: LoRA Adapters
path: features/lora/README.md
- section: Observability (Local)
......@@ -146,6 +144,8 @@ navigation:
path: backends/sglang/sglang-diffusion.md
- page: Observability
path: backends/sglang/sglang-observability.md
- page: Agentic Workloads
path: backends/sglang/agents.md
- page: TensorRT-LLM
path: backends/trtllm/README.md
- page: vLLM
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment