write-a-skill

bởi sanity-io

Tạo kỹ năng đại lý mới với cấu trúc phù hợp, tiết lộ dần dần và tài nguyên đi kèm. Sử dụng khi người dùng muốn tạo, viết hoặc xây dựng một kỹ năng mới.

npx skills add https://github.com/sanity-io/sanity --skill write-a-skill

Writing Skills

Process

  1. Gather requirements - ask user about:

    • What task/domain does the skill cover?
    • What specific use cases should it handle?
    • Does it need executable scripts or just instructions?
    • Any reference materials to include?
  2. Draft the skill - create:

    • SKILL.md with concise instructions
    • Additional reference files if content exceeds 500 lines
    • Utility scripts if deterministic operations needed
  3. Review with user - present draft and ask:

    • Does this cover your use cases?
    • Anything missing or unclear?
    • Should any section be more/less detailed?

Skill Structure

skill-name/
├── SKILL.md           # Main instructions (required)
├── REFERENCE.md       # Detailed docs (if needed)
├── EXAMPLES.md        # Usage examples (if needed)
└── scripts/           # Utility scripts (if needed)
    └── helper.js

SKILL.md Template

---
name: skill-name
description: Brief description of capability. Use when [specific triggers].
---

# Skill Name

## Quick start

[Minimal working example]

## Workflows

[Step-by-step processes with checklists for complex tasks]

## Advanced features

[Link to separate files: See [REFERENCE.md](REFERENCE.md)]

Description Requirements

The description is the only thing your agent sees when deciding which skill to load. It's surfaced in the system prompt alongside all other installed skills. Your agent reads these descriptions and picks the relevant skill based on the user's request.

Goal: Give your agent just enough info to know:

  1. What capability this skill provides
  2. When/why to trigger it (specific keywords, contexts, file types)

Format:

  • Max 1024 chars
  • Write in third person
  • First sentence: what it does
  • Second sentence: "Use when [specific triggers]"

Good example:

Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when user mentions PDFs, forms, or document extraction.

Bad example:

Helps with documents.

The bad example gives your agent no way to distinguish this from other document skills.

When to Add Scripts

Add utility scripts when:

  • Operation is deterministic (validation, formatting)
  • Same code would be generated repeatedly
  • Errors need explicit handling

Scripts save tokens and improve reliability vs generated code.

When to Split Files

Split into separate files when:

  • SKILL.md exceeds 100 lines
  • Content has distinct domains (finance vs sales schemas)
  • Advanced features are rarely needed

Review Checklist

After drafting, verify:

  • Description includes triggers ("Use when...")
  • SKILL.md under 100 lines
  • No time-sensitive info
  • Consistent terminology
  • Concrete examples included
  • References one level deep

Thêm skills từ sanity-io

tdd
sanity-io
Phát triển hướng theo kiểm thử với vòng lặp đỏ-xanh-tái cấu trúc. Sử dụng khi người dùng muốn xây dựng tính năng hoặc sửa lỗi bằng TDD, đề cập đến "đỏ-xanh-tái cấu trúc", muốn…
performance-optimization
sanity-io
Tối ưu hóa hiệu suất ứng dụng. Sử dụng khi có yêu cầu về hiệu suất, khi nghi ngờ có suy giảm hiệu suất, hoặc khi Core Web Vitals hoặc thời gian tải…
content-experimentation-best-practices
sanity-io
Hướng dẫn có cấu trúc để thiết kế, thực thi và phân tích các thử nghiệm nội dung nhằm cải thiện tỷ lệ chuyển đổi và mức độ tương tác. Bao gồm các khung giả thuyết, lựa chọn chỉ số, tính toán kích thước mẫu và kiểm định ý nghĩa thống kê trong các thử nghiệm A/B và đa biến. Cung cấp tài nguyên chi tiết về giá trị p, khoảng tin cậy, phân tích lũy thừa và phương pháp Bayes để diễn giải kết quả. Cung cấp các mẫu tích hợp CMS để quản lý biến thể ở cấp trường và kết nối bên ngoài...
content-modeling-best-practices
sanity-io
Hướng dẫn mô hình hóa nội dung có cấu trúc cho thiết kế schema, khả năng tái sử dụng và phân phối đa kênh. Bao gồm các nguyên tắc cốt lõi: coi nội dung là dữ liệu thay vì trang, duy trì nguồn thông tin duy nhất, thiết kế cho các kênh trong tương lai và tối ưu hóa quy trình làm việc của biên tập viên. Cung cấp khung quyết định cho tham chiếu so với đối tượng nhúng, phân tách mối quan tâm và các mẫu tái sử dụng nội dung. Cung cấp hướng dẫn về phân loại và phân lớp cho các phương pháp phẳng, phân cấp và khía cạnh. Áp dụng cho...
portable-text-conversion
sanity-io
Chuyển đổi nội dung HTML và Markdown thành các khối Portable Text cho Sanity. Sử dụng khi di chuyển nội dung từ các CMS cũ, nhập HTML hoặc Markdown vào Sanity,…
portable-text-serialization
sanity-io
Kết xuất và tuần tự hóa Portable Text thành React, Svelte, Vue, Astro, HTML, Markdown và văn bản thuần. Sử dụng khi triển khai kết xuất Portable Text trong bất kỳ giao diện người dùng nào…
sanity-best-practices
sanity-io
Các phương pháp thực hành tốt nhất toàn diện và hướng dẫn tích hợp cho phát triển Sanity CMS trên nhiều framework và chủ đề. Bao gồm hơn 10 tích hợp framework bao gồm Next.js, Nuxt, Astro, Remix, SvelteKit và Angular với các mẫu và hướng dẫn thiết lập dành riêng cho từng framework. Bao gồm các hướng dẫn chủ đề về thiết kế schema, tối ưu hóa truy vấn GROQ, Chỉnh sửa trực quan, Văn bản di động, hình ảnh, TypeGen, bản địa hóa và di chuyển nội dung. Cung cấp cấu trúc tham khảo nhanh để chỉ tải các hướng dẫn liên quan dựa trên loại tác vụ,...
sanity-migration
sanity-io
Lập kế hoạch, triển khai và xem xét việc di chuyển từ các CMS và hệ thống nội dung khác sang Sanity. Sử dụng khi di chuyển hoặc chuyển đổi nền tảng sang Sanity từ AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, tệp Markdown/MDX/frontmatter, xuất WXR/XML, API CMS, bản sao cơ sở dữ liệu, HTML tĩnh, hoặc khi thiết kế quy trình trích xuất, chuyển đổi, chuyển đổi Portable Text, di chuyển tài sản, chuyển hướng, xác thực và cắt chuyển.
data-analysisdatabasedevelopment