repo-website-guide-create
fabian-hiller/valibot/.agents/skills/repo-website-guide-create/SKILL.md
Create conceptual documentation and tutorial pages for the Valibot website at website/src/routes/guides/. Use when adding guides about schemas, pipelines, async validation, migration, or other topics. Covers directory structure, MDX templates, frontmatter, and content guidelines.
What's in it
- Adding Guides to Website
- Directory Structure
- Process
- index.mdx Template
- Frontmatter
- Content Guidelines
- Code Examples
- Links
- Components
- Formatting
- Writing tone
- Images
- Update menu.md
- Checklist
---
name: repo-website-guide-create
description: Create conceptual documentation and tutorial pages for the Valibot website at website/src/routes/guides/. Use when adding guides about schemas, pipelines, async validation, migration, or other topics. Covers directory structure, MDX templates, frontmatter, and content guidelines.
---
# Adding Guides to Website
Guide for creating conceptual documentation at `website/src/routes/guides/`.
## Directory Structure
```
website/src/routes/guides/
├── menu.md # Navigation menu
├── (get-started)/ # Intro, installation, quick start
├── (main-concepts)/ # Schemas, pipelines, parsing
├── (schemas)/ # Objects, arrays, unions
├── (advanced)/ # Async, i18n, JSON Schema
├── (migration)/ # Version upgrades, Zod migration
└── (category)/guide-slug/
└── index.mdx # Guide content
```
Note: Category folders use parentheses (Qwik route grouping).
## Process
1. Review 2-3 existing guides in the target category to understand style
2. Choose category from existing or create new
3. Create folder: `(category)/guide-slug/`
4. Create `index.mdx` with content
5. Update `menu.md`
## index.mdx Template
```mdx
---
title: Guide Title
description: >-
A concise description of what this guide covers.
contributors:
- github-username
---
import { ApiList, Link } from '~/components';
# Guide Title
Opening paragraph explaining what the reader will learn.
## Section Heading
Content with clear, concise language.
\`\`\`ts
import \* as v from 'valibot';
const Schema = v.object({
name: v.string(),
email: v.pipe(v.string(), v.email()),
});
\`\`\`
## Another Section
Continue with additional sections as needed.
Use <Link href="/api/pipe/">\`pipe\`</Link> for internal links.
```
## Frontmatter
Required fields:
- **title**: Page title and navigation label
- **description**: SEO description (use `>-` for multi-line)
- **contributors**: Array of GitHub usernames
## Content Guidelines
### Code Examples
- Use TypeScript (`ts` language)
- Import as `import * as v from 'valibot';`
- Include comments for complex code
### Links
Internal links use the `Link` component:
```mdx
<Link href="/guides/schemas/">schemas guide</Link>
<Link href="/api/pipe/">\`pipe\`</Link>
```
### Components
```mdx
<ApiList label="Related schemas" items={['object', 'array', 'string']} />
```
### Formatting
- `inline code` for API names, variables, file names
- **bold** for genuine emphasis only — not as inline section labels
- Proper heading hierarchy (h1 title, h2 sections, h3 subsections)
### Writing tone
- Write conversational prose, not terse reference-doc style
- Use first-person plural: "we recommend" not "you should"
- Do not use bold as inline section labels (e.g. avoid `**Label:** content`). Use a proper subheading instead
- Do not prefix blockquotes with bold labels (e.g. avoid `> **Note:** ...`). A plain `>` is correct
- Bullet list items do not need a bold prefix on each item
### Images
Place images in the same folder as `index.mdx`:
```mdx

```
Consider light/dark theme variants if applicable (e.g., `diagram-light.jpg`, `diagram-dark.jpg`).
## Update menu.md
Add to `/website/src/routes/guides/menu.md`:
```markdown
## Category Name
- [Existing Guide](/guides/existing/)
- [New Guide Title](/guides/guide-slug/)
```
Maintain logical ordering within categories.
## Checklist
- [ ] Reviewed existing guides in the same category
- [ ] Folder structure: `(category)/guide-slug/index.mdx`
- [ ] Frontmatter: title, description, contributors
- [ ] Internal links use `Link` component
- [ ] Code examples use `import * as v from 'valibot';`
- [ ] Added to `menu.md`
- [ ] Style matches existing guides
More agent context in fabian-hiller/valibot
7 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- repo-source-code-document.agents/skills/repo-source-code-document/SKILL.md
- repo-source-code-review.agents/skills/repo-source-code-review/SKILL.md
- repo-structure-navigate.agents/skills/repo-structure-navigate/SKILL.md
- repo-website-api-create.agents/skills/repo-website-api-create/SKILL.md
- repo-website-api-update.agents/skills/repo-website-api-update/SKILL.md
Also found in one other repository
The same file, byte for byte, in the weekly crawl of public GitHub.
Discussion
Talked about elsewhere, linking to fabian-hiller/valibot
- Valibot, a <1kb Alternative to Zod
Hacker News · 3 points · Jul 26, 2023
- Let it rain ✨ & celebrate OSS 🚀 Quote this post to keep the appreciation train going! List 3 OSS repos with links, star them on GH and…
Bluesky · @sandros94.com · 5 likes and reposts · 1 replies · Nov 22, 2024
- Rewrite Valibot with the `pipe` function
GitHub · open-circle/valibot · 74 reactions · 71 comments · Apr 3, 2024
- Valibotの様子を見ている。よさそうなのでちょっと試してみよう。
Bluesky · @hiroy.kotori.style · 1 likes and reposts · Nov 19, 2023
- Support Metadata like description
GitHub · open-circle/valibot · 25 reactions · 46 comments · Jan 16, 2024
- 📦 fabian-hiller / valibot ⭐ 2,842 (+65) 🗒 TypeScript The modular and type safe schema library for validating structural data 🤖
Bluesky · @github-trending-js.bsky.social · 1 likes and reposts · Aug 14, 2023
- [FEATURE]: Add support for new `pipe` syntax for drizzle-valibot
GitHub · drizzle-team/drizzle-orm · 15 reactions · 3 comments · May 21, 2024
- yug1224 starred fabian-hiller/valibot https://github.com/fabian-hiller/valibot
Bluesky · @yug1224.com · 1 likes and reposts · Jul 26, 2023
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

