# Add Skill
## Function
Add a new skill (prompt rule) to the CloudBase AI Toolkit project.
## Trigger Condition
When user inputs `/add-skill` or needs to add a new skill/prompt rule
## Workflow
### Step 1: Understand Skill Structure
A skill consists of:
- **Configuration entry** in `doc/prompts/config.yaml`
- **Rule file(s)** in `config/rules/{skill-id}/` directory
- **Generated documentation** in `doc/prompts/{skill-id}.mdx` (auto-generated)
- **Generated prompts data** in `doc/components/prompts.json` (auto-generated from config.yaml)
- **UI component entry** in `doc/components/PromptScenarios.tsx` (manual update)
### Step 2: Create Rule File(s)
Create the rule file(s) in `config/rules/{skill-id}/` directory:
1. **Main rule file**: `config/rules/{skill-id}/rule.md`
- Must include frontmatter with `name` and `description`
- Should follow the standard structure:
```markdown
---
name: skill-id
description: Brief description of the skill
alwaysApply: false
---
# Skill Title
Brief description of when to use this skill.
## When to use this skill
Use this skill when...
## How to use this skill (for a coding agent)
1. First step
2. Second step
...
## Core Knowledge
Detailed knowledge and guidelines...
```
2. **Optional sub-files**: If the skill is complex, you can split it into multiple files:
- `rule.md` - Main rule file
- `{topic}.md` - Sub-topics (e.g., `crud-operations.md`, `pagination.md`)
- All files in the directory will be included in the generated documentation
### Step 3: Add Configuration to config.yaml
Add a new entry to `doc/prompts/config.yaml`:
```yaml
- id: skill-id
title: Skill Title (Chinese)
description: Skill description (Chinese)
category: category-id # auth, database, backend, frontend, or tools
order: number # Order within the category
prompts:
- "Example prompt 1"
- "Example prompt 2"
# Optional: if rule files are in a different directory
# ruleDir: different-directory-name
```
**Important Notes:**
- `id` must match the directory name in `config/rules/`
- `category` must be one of: `auth`, `database`, `backend`, `frontend`, `tools`
- `order` determines the display order within the category
- `prompts` are example prompts users can try
### Step 4: Generate Documentation and Prompts Data
Run the generation scripts to create the MDX documentation and prompts JSON:
```bash
# Generate MDX documentation from rule files
node scripts/generate-prompts.mjs
# Generate prompts.json from config.yaml (for AIDevelopmentPrompt component)
npm run build:prompts-data
```
This will:
- Generate `doc/prompts/{skill-id}.mdx` from the rule files
- Update `doc/sidebar.json` automatically
- Generate `doc/components/prompts.json` from `config.yaml` (used by `AIDevelopmentPrompt` component)
### Step 5: Update PromptScenarios Component
Manually add the new skill to `doc/components/PromptScenarios.tsx`:
1. Find the appropriate category section
2. Add a new entry following the existing format:
```typescript
{
id: 'skill-id',
title: 'Skill Title',
description: 'Skill description',
category: 'Category Name (Chinese)',
docUrl: '/ai/cloudbase-ai-toolkit/prompts/skill-id',
},
```
**Category Mapping:**
- `auth` → `'身份认证'`
- `database` → `'数据库'`
- `backend` → `'后端开发'`
- `frontend` → `'应用集成'`
- `tools` → `'开发工具'`
### Step 6: Verify Generated Files
Check that:
- ✅ `doc/prompts/{skill-id}.mdx` exists and has correct content
- ✅ `doc/sidebar.json` includes the new skill in the correct category
- ✅ `doc/components/prompts.json` includes the new skill with all prompts
- ✅ `doc/components/PromptScenarios.tsx` includes the new skill
- ✅ Rule files are properly formatted with frontmatter
### Step 7: Test the Skill
1. Verify the generated MDX file renders correctly
2. Check that the skill appears in the UI components
3. Test that example prompts work as expected
## Important Notes
### Rule File Best Practices
1. **Frontmatter is required**: Every rule file must have YAML frontmatter
2. **Clear structure**: Follow the standard structure (When to use, How to use, Core Knowledge)
3. **English content**: Rule files should be in English (documentation is auto-generated in Chinese)
4. **Code examples**: Include practical code examples when relevant
5. **Tool references**: Reference specific MCP tools when applicable
### Category Guidelines
- **auth**: Authentication-related skills (login, signup, user management)
- **database**: Database operations (NoSQL, MySQL, data modeling)
- **backend**: Backend services (cloud functions, cloudrun)
- **frontend**: Frontend integration (Web, mini program, UI design)
- **tools**: Development tools and workflows (spec workflow, platform knowledge)
### File Naming Conventions
- Skill ID: lowercase, hyphen-separated (e.g., `cloud-functions`, `auth-web`)
- Rule file: Always `rule.md` for the main file
- Sub-files: Descriptive names (e.g., `crud-operations.md`, `pagination.md`)
## Example
```
/add-skill I need to add a new skill for "Cloud Storage Web SDK"
→ Guide through all 7 steps to add complete skill support
```
## Success Criteria
- [ ] Rule file(s) created in `config/rules/{skill-id}/`
- [ ] Configuration added to `doc/prompts/config.yaml`
- [ ] Documentation generated via `node scripts/generate-prompts.mjs`
- [ ] Prompts data generated via `npm run build:prompts-data`
- [ ] Entry added to `doc/components/PromptScenarios.tsx`
- [ ] Generated MDX file exists and is correct
- [ ] Generated `prompts.json` includes the new skill
- [ ] Sidebar updated automatically
- [ ] All files verified and tested