REPLACE-WITH-KEBAB-NAME
REPLACE — 1段落の三人称で、このスキルが扱う具体的なATPro用語と対応言語(「Rust、TypeScript、またはGo」など)を明記します。発動すべきユーザーフレーズ、対応言語ごとのライブラリおよびインポート名(「multiformats」「go-cid」「atproto-dasl」など)、一般的なエラー文字列、および隣接スキルと重複しないよう対象外となる内容を含めてください。説明は発動シグナルとしての唯一のトリガーであるため、簡潔さより キーワード密度を優先してください。
description の原文を見る
REPLACE — one paragraph, third-person, naming the concrete ATProto terms the skill handles AND the supported languages (e.g. "in Rust, TypeScript, or Go"). Include user phrases it should fire on, library and import names for every supported language ("multiformats", "go-cid", "atproto-dasl"), common error strings, and what it does NOT cover so adjacent skills aren't shadowed. Description is the ONLY trigger signal — err on keyword-dense over terse.
SKILL.md 本文
REPLACE — スキルタイトル
<!-- これはPOLYGLOTルーターテンプレートです。トピックが言語中立的だが、 エコシステム間で慣用句が大きく異なる場合に使用してください。 単一言語または言語に依存しないスキルの場合は、SKILL.md.templateを使用してください。 ポリグロットスキルの目的のレイアウト(ここにコピーして配置してください): skills/<name>/ ├── SKILL.md ← このファイル — シンスキル、≤~150行。 ├── shared/ ← 言語ディレクトリとの並列関係(references/配下ではない)。 │ 規範的な仕様、バイナリレイアウト、テストベクトル、 │ 相違点マトリックス。言語中立的のみ。 ├── rust/ ← サポート言語ごとに1つの兄弟ディレクトリ。 │ ├── README.md ファイル名を言語ディレクトリ間で一致させる: │ ├── <topic>.md rust/<topic>.md ↔ typescript/<topic>.md ↔ go/<topic>.md │ └── … ├── typescript/ │ └── … └── go/ └── … 参考にするランド済みポリグロットスキル(埋める前に1つ読んでください): skills/atproto-cid/ — CID解析・構築、scripts/有り skills/atproto-identity-resolution/ — ハンドル↔DID解決 skills/atproto-repository/ — CAR + MST + コミット署名 ルーターが守る必要があるルール: • SKILL.mdはルーターであり、チュートリアルではありません。デフォルト、 言語検出、読書ガイド、言語間のハザード。手順は{lang}/*.mdにあります。 • shared/は{lang}/と並列です。references/配下にネストしないでください。 • サポートされるすべての言語はREADME.mdとトピック別タスクファイルを取得します。 言語間でファイル名を一致させるか、読書ガイドが機能しません。 • shared/divergence-matrix.mdは相互運用ピボットです。言語別ファイルは、 相違点を再度述べるのではなく、ここにリンクします。 • 言語がまだサポートできない場合は、そう述べ、shared/spec.mdと 翻字元の参照実装を指してください。 このパターンの元の研究ガイダンス: .context/attachments/pasted_text_2026-04-21_12-28-08.txt およびCLAUDE.md §1「ポリグロットスキル(オプション形状)」。 -->1段落の枠組み:このプリミティブが何であるか、なぜAT Protocolに存在するのか、このスキルがshared/の言語中立的な仕様の上に<Rust、TypeScript、Go>の言語別ガイドにどのようにルーティングするかについて説明します。
デフォルト
サポートされるすべての言語で保持される不変量。呼び出し元コードまたは生成コードが、スタックに関係なく守る必要があります。これを3~6個の箇条書きに留めてください。例の形:
- <フォーマット名> — 1行の規範的なルール。完全なルールについては
shared/<file>.mdにリンク。 - <コーデック・アルゴリズム> — 正確な定数を含む1行のルール。
- <主要なエッジケース> — 誰もが一度はハマるもの。
完全な規範的ルール:shared/<spec-file>.md。フィクスチャ:shared/test-vectors.md。言語間の相違:shared/divergence-matrix.md。
言語検出
任意の<topic>コードを生成またはレビューする前に、プロジェクトファイルまたは編集中のファイルからターゲット言語を決定してください:
Cargo.toml、*.rs、<rust-crate-name>のインポート → Rust —rust/から読み取り。package.json、tsconfig.json、*.ts、*.tsx、<ts-pkg-name>のインポート → TypeScript —typescript/から読み取り。.tsがない場合は*.js/*.jsxも対象。go.mod、*.go、<go-module-path>のインポート → Go —go/から読み取り。
それらが一致しない場合は、リポジトリルートではなく編集中のファイルを優先します:TypeScriptワークスペースモノレポ内のGo使用者も、そのタスクではGoを意味します。
複数の言語が存在し、タスクが明確に1つを指さない場合は、どちらが適用されるかを確認してください。生成されたコードで言語間のライブラリをミックスしないでください。
サポートされていない言語が検出された場合(Python、Java、Swift など)、ユーザーにshared/<spec-file>.mdをワイヤフォーマット用に指し、<最も完全な参照実装、通常はGoまたはRust>を翻字元として提案してください。
読書ガイド
すべての<topic>タスクについて:
- 最初に関連する
shared/*.mdを読んでください。これらは短く、コードが守る必要があるルールを定義しています。 - 検出された言語ディレクトリの関連タスクファイルを読んでください:
- <タスクA(例:解析)> →
{lang}/<file>.md - <タスクB(例:構築)> →
{lang}/<file>.md - <タスクC> →
{lang}/<file>.md - ライブラリセットアップ、パブリックAPIの概要、慣用句 →
{lang}/README.md
- <タスクA(例:解析)> →
- 言語間でのポーティングやクロススタック相互運用性をレビューするときは、常に
shared/divergence-matrix.mdを参照してください。
常に手作業より公式ライブラリを優先してください:Rustの場合<rust-crate>、TypeScriptの場合<ts-pkg>、Goの場合<go-module>。
アーキテクチャ(共有コンセプト)
1画面の概念的スタック — ASCIIダイアグラム、階層化されたリスト、または短い説明 — これにより、Claudeはshared/を開かなくても各部分について推論できます。言語固有ファイルの錨となります。これは純粋に概念的に保ち、言語ごとのAPI名にドリフトしないでください。
事前に警告するクロス言語ハザード
高頻度の障害モード。完全な詳細はshared/divergence-matrix.mdにあります。短いエントリ、各エントリについて1行のコンテキスト。ここに属する内容の例(実際のランド済みスキルから):
- <ライブラリX>は<もの>をデフォルトで取り込み時に検証します。YとZは検証しません。 Yが受け入れるブロブ/Zが破損している場合、X取り込みが失敗することがあります。
- <言語><API>は不変です。その他は現地で変異します。 コピペハザード。
- <コーデック定数>は<言語>にのみ搭載されます。 その他はインポートするか手作業でロールしなければなりません。
- <ワイヤフィールド>省略対NULL相違。 1つの実装によって生成された署名は、別の実装を通じた検証に失敗することがあります。
- <アルゴリズム>動作は<エッジケース>で異なります。
これらはトリガータイムコンテキストであるため、ルーターに存在します。Claudeは任意の{lang}/*.mdを開く前にこれらが必要です。
呼び出せるツール
目標が実装の教え方ではなく計算または検証である場合、これらのMCPツールを優先してください:
lexicon-garden→<関連ツール呼び出し>。atpmcp→<関連ツール呼び出し>。
このスキルと一緒にscripts/が付属する場合は、ここでCLIエントリポイントについて説明してください(終了コード意味論付き)。スクリプトはPython 3/bashのみであり、非標準ライブラリなし、ネットワークなし、高速である必要があります。
ディレクトリレイアウト
<skill-name>/
├── SKILL.md # このファイル — ルーター
├── shared/
│ ├── <spec-file>.md # 規範的なルール
│ ├── test-vectors.md # フィクスチャ
│ └── divergence-matrix.md # クロス言語相違
├── rust/
│ ├── README.md # クレートセットアップ、慣用句
│ ├── <task-a>.md
│ ├── <task-b>.md
│ └── <task-c>.md
├── typescript/
│ ├── README.md
│ ├── <task-a>.md
│ ├── <task-b>.md
│ └── <task-c>.md
└── go/
├── README.md
├── <task-a>.md
├── <task-b>.md
└── <task-c>.md
リファレンス
以下はすべて上記のツリーから到達可能です。クイックgrepの場合はここにリストされています:
shared/<spec-file>.md、shared/test-vectors.md、shared/divergence-matrix.mdrust/README.md、rust/<task-a>.md、rust/<task-b>.md、rust/<task-c>.mdtypescript/README.md、typescript/<task-a>.md、typescript/<task-b>.md、typescript/<task-c>.mdgo/README.md、go/<task-a>.md、go/<task-b>.md、go/<task-c>.md
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ngerakines
- ライセンス
- MIT
- 最終更新
- 2026/4/23
Source: https://github.com/ngerakines/atproto-skills / ライセンス: MIT