Generate Agent Skills from project documentation.
PLEASE DO FOLLOW THIS BEST PRACTICES GUIDELINE: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices
Focus on agents capabilities and practical usage patterns. For user-facing guides, introductions, get-started, install guide, or common knowledge that LLM agents already know, you can skip those content.
There are two types of skill sources. The project lists are defined in meta.ts:
For OSS projects without existing skills. We clone the repo as a submodule and generate skills from their documentation.
- Projects: uni-app, uni-helper
- Workflow: Read docs → Understand → Generate skills
- Source:
sources/{project}/docs/
For projects that already maintain their own skills. We clone their repo as a submodule and sync specified skills to ours.
- Projects: vue, VueUse, vue-best-practices, web-design-guidelines, pinia, vite, unocss
- Workflow: Pull updates → Copy specified skills (with optional renaming)
- Source:
vendor/{project}/skills/{skill-name}/ - Config: Each vendor specifies which skills to sync and their output names in
meta.ts
.
├── meta.ts # Project metadata (repos & URLs)
├── instructions/ # Instructions for generating skills
│ └── {project}.md # Instructions for generating skills for {project}
│
├── sources/ # Type 1: OSS repos (generate from docs)
│ └── {project}/
│ └── docs/ # Read documentation from here
│
├── vendor/ # Type 2: Projects with existing skills (sync only)
│ └── {project}/
│ └── skills/
│ └── {skill-name}/ # Individual skills to sync
│
└── skills/ # Output directory (generated or synced)
└── {output-name}/
├── SKILL.md # Index of all skills
├── GENERATION.md # Tracking metadata (for generated skills)
├── SYNC.md # Tracking metadata (for synced skills)
└── references/
└── *.md # Individual skill files
Important: For Type 1 (generated), the skills/{project}/ name must match sources/{project}/. For Type 2 (synced), the output name is configured in meta.ts and may differ from the source skill name.
-
Add entry to
meta.tsin thesubmodulesobject:export const submodules = { // ... existing entries 'new-project': 'https://github.com/org/repo', }
-
Run sync script to clone the submodule:
pnpm start init -y
This will clone the repository to
sources/{project}/ -
Follow the generation guide below to create the skills
- Focus on agents capabilities and practical usage patterns. For user-facing guides, introductions, get-started, or common knowledge that LLM agents already know, you can skip those content.
- Categorize each references into
core,features,best-practices,advanced, etc categories, and prefix the reference file name with the category. For each feature field, feel free to create more categories if needed to better organize the content.
- Read source docs from
sources/{project}/docs/ - Read the instructions in
instructions/{project}.mdfor specific generation instructions if exists - Understand the documentation thoroughly
- Create skill files in
skills/{project}/references/ - Create
SKILL.mdindex listing all skills - Create
GENERATION.mdwith the source git SHA
- Check git diff since the SHA recorded in
GENERATION.md:cd sources/{project} git diff {old-sha}..HEAD -- docs/ - Update affected skill files based on changes
- Update
SKILL.mdwith the new version of the tool/project and skills table. - Update
GENERATION.mdwith new SHA
- Copy specified skills from
vendor/{project}/skills/{skill-name}/toskills/{output-name}/ - Create
SYNC.mdwith the vendor git SHA
- Check git diff since the SHA recorded in
SYNC.md:cd vendor/{project} git diff {old-sha}..HEAD -- skills/{skill-name}/ - Copy changed files from
vendor/{project}/skills/{skill-name}/toskills/{output-name}/ - Update
SYNC.mdwith new SHA
Note: Do NOT modify synced skills manually. Changes should be contributed upstream to the vendor project.
Index file listing all skills with brief descriptions. Name should be in kebab-case.
The version should be the date of the last sync.
Also record the version of the tool/project when the skills were generated.
---
name: {name}
description: {description}
metadata:
author: FlippeDround
version: "2026.1.1"
source: Generated from {source-url}, scripts located at https://github.com/antfu/skills
---
> The skill is based on {project} v{version}, generated at {date}.
// Some concise summary/context/introduction of the project
## Core References
| Topic | Description | Reference |
|-------|-------------|-----------|
| Markdown Syntax | Slide separators, frontmatter, notes, code blocks | [core-syntax](references/core-syntax.md) |
| Animations | v-click, v-clicks, motion, transitions | [core-animations](references/core-animations.md) |
| Headmatter | Deck-wide configuration options | [core-headmatter](references/core-headmatter.md) |
## Features
### Feature a
| Topic | Description | Reference |
|-------|-------------|-----------|
| Feature A Editor | Description of feature a | [feature-a](references/feature-a-foo.md) |
| Feature A Preview | Description of feature b | [feature-b](references/feature-a-bar.md) |
### Feature b
| Topic | Description | Reference |
|-------|-------------|-----------|
| Feature B | Description of feature b | [feature-b](references/feature-b-bar.md) |
// ...Tracking metadata for generated skills (Type 1):
# Generation Info
- **Source:** `sources/{project}`
- **Git SHA:** `abc123def456...`
- **Generated:** 2024-01-15Tracking metadata for synced skills (Type 2):
# Sync Info
- **Source:** `vendor/{project}/skills/{skill-name}`
- **Git SHA:** `abc123def456...`
- **Synced:** 2024-01-15Individual skill files. One concept per file.
At the end of the file, include the reference links to the source documentation.
---
name: {name}
description: {description}
---
# {Concept Name}
Brief description of what this skill covers.
## Usage
Code examples and practical patterns.
## Key Points
- Important detail 1
- Important detail 2
<!--
Source references:
- {source-url}
- {source-url}
- {source-url}
-->When generating skills (Type 1 only):
- Rewrite for agents - Don't copy docs verbatim; synthesize for LLM consumption
- Be practical - Focus on usage patterns and code examples
- Be concise - Remove fluff, keep essential information
- One concept per file - Split large topics into separate skill files
- Include code - Always provide working code examples
- Explain why - Not just how to use, but when and why
See meta.ts for the canonical list of projects and their repository URLs.