write-a-skill

作成者: sanity-io

適切な構造、段階的な開示、バンドルされたリソースを使用して新しいエージェントスキルを作成します。ユーザーが新しいスキルを作成、記述、構築したい場合に使用します。

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

sanity-ioのその他のスキル

performance-optimization
sanity-io
アプリケーションのパフォーマンスを最適化します。パフォーマンス要件がある場合、パフォーマンスの低下が疑われる場合、またはCore Web Vitalsや読み込み時間が…
official
rxjs-like-a-pro
sanity-io
このスキルは、慣用的で構成可能、かつ一般的な落とし穴のないRxJSコードを書くのに役立ちます。核となる哲学は、ロジックをobservableチェーン内に保持することです。.subscribe()を使おうとするたびに、その処理を.pipe()内の変換として表現できないか自問してください。
official
find-skills
sanity-io
ユーザーが「Xをするにはどうすればいいか」「Xのスキルを探して」「〜できるスキルはあるか」といった質問をしたり、何かを表現したりしたときに、エージェントスキルを発見・インストールするのを支援します。
official
next-cache-components
sanity-io
Next.js 16 キャッシュコンポーネント - PPR、use cacheディレクティブ、cacheLife、cacheTag、updateTag
official
vercel-react-best-practices
sanity-io
Vercel EngineeringによるReactおよびNext.jsのパフォーマンス最適化ガイドライン。このスキルは、React/Next.jsのコードを記述、レビュー、またはリファクタリングする際に使用すべきものです。
official
frontend-design
sanity-io
差別化された、プロダクションレベルのフロントエンドインターフェースを高いデザイン品質で作成します。ユーザーがウェブコンポーネント、ページなどを構築するよう依頼した場合に、このスキルを使用してください。
official
plugin-transfer
sanity-io
既存のプラグインをコピープラグイン生成ワークフローでこのモノレポに移行するようエージェントをガイドします。
official
test-studio-script-runner
sanity-io
dev/test-studioのScript Runnerツールについて説明します。dev/test-studio/src/script-runner内のスクリプトを追加、編集、実行、または文書化する際、または…
official