Communityコーディング&開発github.com

ガイド作成

デスクリサーチを実行し、プロジェクトの `.knowledge/{domain}/{topic}/guide.md` に技術ガイドを作成します。ユーザーが `/learn` や学習ガイド、デスクリサーチを依頼した場合、または学習対象のサブジェクトやリンクを提供した場合に使用します。

ガイド作成 とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)が、指定されたトピックについてデスクリサーチを実施し、構造化された技術ガイドをプロジェクトの `.knowledge/` ディレクトリに生成するためのものです。ユーザーが `/learn` コマンドを使用するか、学習ガイドの作成を依頼すると、エージェントはまずリサーチクエスチョンを設定し、公式ドキュメント、仕様書、RFC、メンテナーのテキストなど、少なくとも5つの高関連性の一次情報源を収集します。収集した情報源はテーブルで管理され、それぞれの関連性と有用性が評価されます。ガイドは、質問、定義、マクロマップ(フローチャート)、メカニズムのステップ解説、用語集、情報源リストという一貫した構成に従い、能動態と現在形で記述されます。このスキルは、情報源に基づかない主張や架空の参加者、引用の生成を禁止しており、調査結果の正確性と信頼性を確保します。サポート対象プラットフォームは、このスキルを実装するAIエージェント一般であり、特定のプラットフォームに依存しません。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/ploau/knowledge-skills/tree/main/skills/learn

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ユーザーの言語

チャットの応答はユーザーの言語を使用します。その言語は会話、またはコマンドの後のテキストから推測します。チャット応答の各パラグラフは1つの言語に統一してください。

ガイド本文は英語です。ユーザーが名前付きのローカルプロジェクトが採用しているものを学習するよう依頼した場合、またはそのプロジェクトを主題とする情報源を渡した場合、ガイド本文はそのプロジェクトが既に使用している言語で記述します。プロジェクトのドキュメントとインターフェース文字列を読み、それらの成果物が使用している言語を使用してください。言語が混在している場合は、採用を示すファイルの言語を使用します。

脊椎見出しはこのスキルに記述されている通りに維持します。語彙トークンは英語のままにします。このファイル内の指示は英語のままです。

ガイド作成 は何をしますか?

オープンプロジェクトの .knowledge/ に技術ガイドを記述します。テキストはコンセプトを命名し、パーツとステップを列挙し、図はプロセスを示します。情報源は、あなたがそれを読んだ後にのみガイドに取り込まれます。

ステップ

  1. 入力をリンク、サブジェクト、またはオープンプロジェクトのいずれかに分類します。
  2. ページを開く前に質問を記述します。
  3. .knowledge/{domain}/{topic}/guide.md を開きます。新しいファイルを Pending で開始します。
  4. ## Sources に High かつ Yes とマークされた行が5つになるまで一次情報源を読みます。ステータスが Pending のままでも構いません。
  5. 該当する行が5つ揃ったら、Draft に設定し、脊椎部分を記述します。
  6. 記述中はライティングのベストプラクティスを適用します。
  7. .knowledge/README.md とドメイン README.md を更新します。
  8. ディスク上で Completed のすべてのチェックが真になった場合のみ、Completed に設定します。
  9. ガイドのパスとステータスを応答します。

ペルソナ

デスクリサーチャーとして行動します。一次情報源を読み、メカニズムを説明します。

  • ページを開く前に質問を記述します。
  • 公式ドキュメント、仕様書、標準、RFC、メンテナーのテキスト、そしてサブジェクトがオープンプロジェクトである場合は採用を示すファイルを優先します。
  • ページが述べていることと、あなたが推測することを分離します。
  • ガイド内の各主張を ## Sources の行に結び付けます。
  • 汎用的なページ、日付のないページ、またはメカニズムを定義していないページは ## Do not use に送ります。
  • 参加者、引用、重大度、テストプロトコルをでっち上げないでください。

入力

/learn と、サブジェクト、リンク、またはオープンプロジェクトが採用しているものからガイドを構築するリクエストを受け付けます。

  • リンク: Method を Pasted に設定します。ページを開き、サブジェクトを抽出し、ドメインを分類します。その後、## Sources に5つの高関連性情報源が見つかるまで検索します。
  • サブジェクト: ドメインを分類し、情報源を検索します。
  • プロジェクト: 外部検索の前に ## Project に従います。

フォルダスラッグは小文字でハイフン区切り、ガイド本文と同じ言語にします。ガイドタイトルはその言語でセンテンスケースを使用します。固有名詞は情報源のスペル通りに保ちます。

書き込み場所

これは /learn の永続的な出力です。オープンプロジェクトに記述します。スキルフォルダ内にガイドを記述しないでください。

.knowledge/
  README.md
  {domain}/
    README.md
    {topic}/
      guide.md

トピックが既に存在する場合は、guide.md を更新します。ページを再度開く際は、情報源を読み直し、Accessed を更新します。

.knowledge/ はこのフローでのみ、ドメインとトピックパスによってのみ読み取ります。

無視ファイル

.knowledge/ を受け取るすべてのプロジェクトで、プロジェクトルートに両方のファイルが存在することを確認します。ファイルが既に存在する場合、行が不足している場合のみ追加します。

.cursorindexingignore:

.knowledge/

.gitignore:

.knowledge/

インデックス無視により、フォルダが自動検索から除外されます。gitignoreにより、リポジトリ検索がガイドをプロジェクトソースとして扱わなくなります。このフローでは、ドメインとトピックパスによる直接読み取りは有効です。

リサーチ

このフローはデスクリサーチです。検索前に1つの質問を記述します。ガイド内のすべての主張を ## Sources の行にポイントします。参加者セッションがない場合、ガイドには引用、重大度、テストプロトコルはありません。

公式ドキュメント、仕様書、標準、RFC、またはメンテナーのテキストを検索します。分類する前に各ページを開いてください。未読のURLはテーブルに入力しません。

Relevant が High で Useful が Yes の情報源を少なくとも5つ記録します。検索で5つに到達できない場合、研究は不完全なままとなり、ステータスは Pending のままです。リポジトリファイルと外部ページは同じテーブルにカウントされます。

例

入力で名前が挙げられたプラグイン、ファイル、または製品は、トピックを指し示します。メカニズムを教える例は一次情報源から取得し、そのメカニズムに絞り込みます。製品名、内部キー、機能フローは例から除外します。

一次情報源は、公式ドキュメント、仕様書、標準、RFC、またはメンテナーのテキストです。

ファイルツリーと差分も同じルールに従います。ツリーは公式モデルです。差分は、一次情報源が示す2つの形式を比較します。差分の両端は ## Sources に入ります。

プロジェクト

このセクションは、リクエストがリポジトリが採用しているものの基礎である場合にのみ使用します。リポジトリから1つの例を挙げる場合は、このセクションは使用しません。

外部検索の前に、採用を示すファイルを読みます。マニフェスト、設定ファイル、メカニズムを使用する呼び出しサイトが該当します。コメントや軽い言及はその証明から除外します。

プロジェクトが使用する方法でメカニズムを記述します。ドキュメントが許可していて、プロジェクトが設定していない動作はマップから除外します。採用を独自のサブセクションに配置します。メカニズムを教える例は、一次情報源の例のままです。

URL 列には、リポジトリルートからのパスを記録します。Method はファイルを見つけたツールです。公式ページは依然としてメカニズムを説明します。5つの行はパスとURLを混在させても構いません。

High ファイルは、マニフェスト、設定ファイル、または採用を示す呼び出しです。軽い言及は ## Do not use に送ります。.knowledge/ をプロジェクトの証拠として使用しないでください。リポジトリがトピックを採用していない場合、ステータスは Pending のままで、ガイドはその選択がなされたものとして扱いません。

語彙

これらの値はここに示されている大文字を使用します。すべてのガイドでトークンを英語のままにします。

フィールド値
StatusPending, Draft, Completed
RelevantHigh, Low
UsefulYes, No
MethodPasted、またはURLを返したツールの正式名称

Pasted はユーザーが提供したリンクです。それ以外のすべての場合、Method は情報源を見つけたツールの名前です。既に持っているURLを開くだけのツールはその列を占有しません。ハーネスがツールに与える名前を記録します。

High: ページがメカニズムを定義している。Low: 一般的な要約、日付のないページ、またはメカニズムを示していないテキスト。

Yes: ページがガイド内の主張をサポートしている。No: ページがガイドをサポートしていない。

ステータス

ステータス条件
Pending## Sources の行が5つ未満。
Draft5つの該当行が ## Sources にあり、ガイドがまだ作成中。
Completed5つの情報源が検証され、## Question が記述され、## What it is が記述され、マクロマップが存在し、## How it works にメカニズムの順序でサブセクションがあり、少なくとも1つのマイクロ図が存在し、## Terms が記入されている。コードトピックの場合、ファイルツリーがガイドにあり、一次情報源が同じメカニズムの2つの形式を示している場合は、少なくとも1つの差分も存在する。

ファイルを Pending で開始します。5つの情報源が揃ったら Draft に移行します。ガイド全体がディスク上にある場合のみ Completed に移行します。5つ未満の高関連性情報源しかない研究は Pending のままです。

ガイドの脊椎

すべての guide.md はこの順序を使用します。

  1. ## Question。1文。
  2. ## What it is。直接的な定義、メカニズムが解決する問題、システムのパーツ。パーツが3つ以上の場合はリストを使用します。各項目は1つのコンセプトで、用語を太字にし、その機能を1文で説明します。
  3. ## Macro map。システム全体の1つの flowchart。ノードは少数にします。図の後の散文でノードを命名します。パーツのリストが続く場合もあります。
  4. ## How it works。メカニズムの実際の順序、最初の接触から結果までのサブセクション。各サブセクションは1つのステップまたは1つのコンセプトを説明します。ステップ、状態、メッセージ、役割が3つ以上ある場合はリストを使用します。リストの前の短いパラグラフで、サブセクションがカバーする内容を述べます。図は、それが示すステップのサブセクションに配置します。
  5. ## Terms。
  6. ## Sources と ## Do not use。

ライティング

これらのベストプラクティスがガイド本文を統治します。ガイド言語で適用します。

ボイス

能動態と現在形を使用します。行為者と行動を明示します。二人称は、読者が実行するステップに対してのみ、命令形の番号付きリストとして、1行に1アクションで使用します。

文

各文に1つのアイデアを与えます。詳細の前にコンセプトを命名します。アイデアが変わったら新しい文を開始します。文中の同じアイデアは、カンマまたは接続詞で接続し、制限を保ちます。

最初の文は事実を述べます。セクションの残りをプレビューしたり、見出しを繰り返したりしません。

同じ事実を括弧内、スラッシュの後、またはダッシュの後で言い換えないでください。括弧は、文が運べないデータ(例:初出の頭字語)のみを保持します。スラッシュはパス、コマンド、または実際の代替手段にのみ使用します。emダッシュは使用しないでください。カンマ、コロン、またはハイフンを使用します。

事実を直接述べてください。否定で反対を提示することから始めないでください。

技術用語を維持してください。次の文で同義語に置き換えないでください。強調語を削除し、事実を述べてください。

用語

セクション内で初めて使用する際は、その文中で用語を定義し、用語を一度だけ太字にします。太字は定義中の用語を示します。文中の途中での強調を示しません。

主張

すべての主張を ## Sources の行に結び付けます。ページが述べていることを記述します。推測する場合は、その文で推測であることを述べてください。

散文、リスト、テーブル、図

メカニズムには散文を使用します。読者が3つ以上のパーツ、ステップ、状態、メッセージ、または役割を比較する場合は、箇条書きリストを使用します。そのリストを完全な文とコロンで導入します。文中のシリーズはカンマを使用し、接続詞で閉じます。

テーブルは ## Sources、## Do not use、および同じメカニズムの2つの形式の短い比較にのみ使用します。プロセスには図を使用し、続く散文でノードを命名します。

コードトピック

まず散文でメカニズムを説明します。説明パラグラフは役割とそれらの間で受け渡されるものを命名します。識別子、パス、キー、コマンド、シグネチャ、インラインコードを含んではいけません。ファイルツリーまたは差分は、そのパラグラフの後、それが説明する ## How it works サブセクションに配置します。3つ以上の役割またはステップがそこに属する場合、リストはパラグラフの後に続き、各項目は用語を太字にし、1文で説明します。

でっち上げてはいけない証拠

参加者、引用、重大度、テストプロトコルをでっち上げないでください。作業に参加者セッションがない場合、それらの項目は除外します。

長さ

## Guide spine に従って順序付けます。## Question は1文。## What it is は定義、問題、パーツを保持します。## Macro map はシステム全体の1つのフローチャート(ノードは少数)と、それらのノードを命名する散文を保持します。## How it works はメカニズムの実際の順序のサブセクションを保持します。各サブセクションは1つのステップまたは1つのコンセプトであり、その図はそのサブセクションに配置します。## Terms は短い定義のリストです。## Sources と ## Do not use でガイドを閉じます。最後の事実で終了します。スローガンを追加しないでください。

guide.md

## Sources は High かつ Yes のみを受け取ります。これらの行が5つのカウントに加算されます。

## Do not use は残り(Low、No、またはその両方)を受け取ります。このセクションは空の場合でも存在し、テーブルヘッダーがあります。Accessed はページを読んだ日付で、YYYY-MM-DD 形式です。

以下のサンプルは1つの情報源がある場合の形状を示しているため、ステータスは Pending です。完成したガイドには5つの該当行が必要です。

---
topic: tcp
domain: networks
status: Pending
updated: YYYY-MM-DD
---

# TCP

Status: Pending

## Question

How does TCP confirm that the data arrived?

## What it is

**TCP** carries a byte stream between two programs and confirms delivery. The problem is knowing which byte the other side has already received, so the sender resends only the gap.

The parts of a send:

- **Sender**: holds the bytes that lack an acknowledgment and resends that span.
- **Receiver**: returns the number of the next byte it expects.
- **Segment**: carries a piece of the stream and the sequence number.

## Macro map

```mermaid
flowchart TD
  sender[Sender] -->|segment| receiver[Receiver]
  receiver -->|acknowledgment| sender
```

The **sender** sends the segment, the **receiver** returns the acknowledgment, and the sender releases the bytes that number covers.

What passes between the nodes:

- **Segment**: the piece of the stream, with the sequence number.
- **Acknowledgment**: the next byte the receiver expects.
- **Retransmission**: the piece that stayed unacknowledged.

## How it works

### The sender releases the segment

The **sender** chooses the next span that still lacks an acknowledgment and places it in a segment. The sequence number identifies the first byte of that span.

### The receiver returns the acknowledgment

The **receiver** checks what arrived and answers with the next byte it still expects. That number releases, on the sender, everything that came before it.

```mermaid
flowchart TD
  send[Send] --> ack[Acknowledgment]
  ack --> release[Release]
```

The acknowledgment moves in this order:

- **Next byte**: the receiver sends the number it still expects.
- **Release**: the sender treats everything before that number as received.
- **Retransmission**: the span outside that count stays queued for resend.

## Terms

- **TCP**: a protocol that confirms delivery of a byte stream.

## Sources

| Source | URL | Method | Accessed | What it supports |
| --- | --- | --- | --- | --- |
| RFC 9293 | https://www.rfc-editor.org/rfc/rfc9293 | WebSearch | YYYY-MM-DD | sequence numbers and acknowledgment of the next byte |

## Do not use

| Source | URL | Method | Accessed | Relevant | Useful | Reason |
| -

…

関連スキル