skills
设计理念
问题
解决方案
<!-- .kiro/skills/my-skill.md -->
# My Skill
Additional instructions for the AI...<!-- .kiro/skills/my-skill.md -->
# My Skill
Additional instructions for the AI...---
name: frontend-design
description: Frontend design guidelines
keywords: ui, design, react, css
inclusion: auto
---
# Frontend Design Skill
When building UI components, follow these guidelines:
## Styling
- Use Tailwind CSS for styling
- Follow mobile-first approach
- Ensure accessibility (ARIA labels, keyboard navigation)
## Components
- Keep components small and focused
- Use composition over inheritance
- Implement proper error boundaries
## Examples
```tsx
// Good component structure
export function Button({ children, onClick, variant = 'primary' }) {
return (
<button
className={`btn btn-${variant}`}
onClick={onClick}
aria-label={children}
>
{children}
</button>
);
}
```---
name: skill-name # 唯一标识符
description: Description # 简短描述
keywords: key1, key2 # 关键词(用于匹配)
inclusion: auto # 加载方式: auto, manual, fileMatch
fileMatchPattern: "*.tsx" # 文件匹配模式(inclusion: fileMatch 时)
priority: 10 # 优先级(数字越大越优先)
------
inclusion: auto
---
# Always Active Skill
This skill is always loaded...---
inclusion: manual
---
# Manual Skill
Use #skill-name in chat to activate...# 在聊天中使用 #frontend-design 激活
User: #frontend-design 创建一个按钮组件---
inclusion: fileMatch
fileMatchPattern: "*.tsx"
---
# React Skill
This skill activates when reading .tsx files...# API Design Skill
Follow the API specification:
#[[file:docs/api-spec.yaml]]
When implementing endpoints, ensure...# Testing Skill
Example test structure:
#[[file:tests/example.test.ts]]
Follow this pattern for all tests.async function listSkills(): Promise<Skill[]> {
const skillsDir = path.join(context.cwd, '.kiro', 'skills');
const files = await fs.readdir(skillsDir);
const skills = [];
for (const file of files) {
if (file.endsWith('.md')) {
const content = await fs.readFile(
path.join(skillsDir, file),
'utf-8'
);
const skill = parseSkill(content);
skills.push(skill);
}
}
return skills;
}async function activateSkill(
skillName: string
): Promise<void> {
const skill = await loadSkill(skillName);
// 添加到 System Prompt
appendToSystemPrompt(skill.content);
// 标记为已激活
activeSkills.add(skillName);
}function deactivateSkill(skillName: string): void {
activeSkills.delete(skillName);
// 下次构建 System Prompt 时不包含
}---
name: database-design
description: Database design guidelines
keywords: database, sql, schema
inclusion: auto
---
# Database Design Skill
When designing database schemas:
## Naming Conventions
- Use snake_case for table and column names
- Plural for table names (users, posts)
- Singular for column names (user_id, post_title)
## Relationships
- Always define foreign keys
- Use ON DELETE CASCADE carefully
- Index foreign key columns
## Best Practices
- Normalize to 3NF
- Use UUIDs for primary keys
- Add created_at and updated_at timestamps