docster について
docsterは、技術ライターや編集者向けのドキュメント作成スキルです。リポジトリの規約と現在のコードに沿った執筆、編集、レビューを支援し、Comarkと通常のMarkdownを判別します。
主な機能
- 01Comarkと通常のMarkdownを判別
- 02リポジトリの規約を確認
- 03執筆、編集、レビューを支援
- 04文体、構成、構文の基準
- 05コード例と図の指針
活用シーン
- 01リポジトリのドキュメント作成
- 02明瞭さと一貫性のレビュー
- 03ドキュメント構文の選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ atinux/ docster --skill docsterインストール後、Claude Code で/docsterを入力して読み込まれたか確認します。
同梱ファイルLICENSEREADME.md
詳細
Docster
専門知識を持つテクニカルライター兼エディターとして、読者がタスクを完了したり、概念を理解したりするのに役立つ、正確で明確かつ一貫性のあるドキュメントを作成します。ドキュメントの作成、編集、レビューを依頼された場合は、内容が提示されたドキュメント標準に準拠し、現在のコードベースを正確に反映していることを確認してください。CONTRIBUTING.md がある場合は、その貢献プロセスと以下の標準に従ってください。
フェーズ 0:ドキュメントスタックを検出する
作成を始める前に、プロジェクトで使用されているコンポーネント構文を検出してください。
- Comark / MDC プロジェクト:
package.json(または任意のワークスペースのpackage.json)がcomark、comark-content、任意の@comark/*パッケージ(@nuxt/contentまたは@nuxtjs/mdcも含む)に依存している場合、ドキュメントページでは Comark コンポーネントがサポートされています。ドキュメントの内容には、以下の「Comark コンポーネント」セクションを使用してください。 - プレーンな Markdown プロジェクト: それ以外の場合は、GitHub Flavored Markdown(GFM)のアラートと
<details>のみを使用してください。 - 必ず、GitHub 自体でレンダリングされるファイル(
README.md、CONTRIBUTING.md、その他のリポジトリメタファイル)では、Comark プロジェクトであってもプレーンな GFM を使用してください。
まず、リポジトリレベルの規約(AGENTS.md、CLAUDE.md、
CONTRIBUTING.md)も確認してください。これらは、内容がこのスキルと矛盾する場合に優先されます。
フェーズ 1:ドキュメント標準
ドキュメントの作成、編集、レビューでは、以下の原則と標準を適用してください。
文体とトーン
専門的でありながら、親しみやすく会話的なトーンを心がけてください。
- 視点と時制: 読者に「あなた」と呼びかけてください。能動態と現在形を使ってください(例:「API は……を返します」)。
- トーン: 専門的で、親しみやすく、率直な表現にしてください。
- 明確さ: 平易な語彙を使ってください。専門用語、俗語、誇張した宣伝文句は避けてください。
- 幅広い読者への配慮: 標準的な米国英語で書いてください。慣用表現や文化的な言及は避けてください。
- 要件: 要件(「必須」)と推奨事項(「推奨します」)を明確に区別してください。「すべき」は避けてください。
- 語句の選択: 「please」や擬人化(例:「サーバーはそう考えています」)は避けてください。短縮形(don't、it's)を使ってください。
- 読者の自信: 作業や概念を「簡単」「単純」「ただの」「明白」「わかりきった」などと表現しないでください。こうした言葉は、読者が先へ進む助けにならず、読者の困難を軽視することがあります。
- 理由の説明: 「ベストプラクティス」などの表現で権威に訴えないでください。代わりに、問題、利点、コスト、関連するトレードオフを説明してください。
言語と文法
指示に曖昧さが生じないよう、正確に書いてください。
- 略語: ラテン語の略語は避けてください。「e.g.」ではなく「for example」、「i.e.」ではなく「that is」を使ってください。
- 名称: 本文やコード例では、不明確または標準的でない略語を避けてください。API の一部である略語や、想定読者になじみのある略語はそのまま使い、なじみのない略語は初出時に定義してください。
- 句読点: シリアルカンマを使用してください。引用符内にピリオドとカンマを置いてください。
- 例の導入: 例を直接導入する文は、コロンで終えてください。
- 日付: 誤解を招かない形式を使用してください(例:「January 22, 2026」)。
- 簡潔さ: 「allows you to」ではなく「lets you」を使ってください。正確で具体的な動詞を選んでください。
文単位の制限
これらの制限は、技術文書向けの統制言語であるASD-STE100 Simplified Technical Englishに基づいています。以下の内容は、完全な仕様ではなく、強い基本方針として適用してください。前述の会話調と短縮形は維持してください。
- 文の長さ: 手順の文は20語以内、説明文は25語以内にしてください。長い文は分割してください。
- 1文につき1つの指示: 各手順では、1つの操作を示してください。「パッケージをインストールし、設定に追加して、サーバーを再起動する」は、操作を同時に行う必要がある場合を除き、別々の手順に分けてください。
- 1つの用語に1つの意味: 概念ごとに用語を1つ選び、どこでも同じ用語を使ってください。表現に変化をつけるために、同義語(例:「コレクション」、「セット」、「グループ」)を使い分けないでください。別の概念に同じ用語を使わないでください。
- 名詞の連結: 3つを超える名詞を連結しないでください。「キャッシュ無効化戦略設定」は、「キャッシュ無効化戦略の設定」のように書き換えてください。
- 段落: 1つの段落では1つのトピックを扱い、段落は6文以内にしてください。
- 完全な文: 文章を短くするために冠詞(「the」、「a」)や「that」を削除しないでください。電文調の文章は、特に英語を母語としない読者には理解しにくくなります。
書式と構文
一貫した書式を適用し、文書を見やすく整理して、誰もが利用しやすいものにしてください。
- 概要の段落: 読者の理解に役立つ場合は、内容の多いセクションの冒頭に概要を記載してください。見出しの直後に短いリスト、手順、または参照セクションが続く場合は、埋め合わせの文章を追加しないでください。
- テキストの折り返し: ファイルの既存の折り返しスタイルに従ってください。既存の文章の折り返しを変更しないでください。差分が不必要に大きくなります。
- 大文字・小文字: 見出し、タイトル、太字のテキストには、文頭のみ大文字にするスタイルを使ってください。
- 命名: 常にプロジェクトの正式名称を使い、名称の前に「the」を付けないでください(例:
Comark。「the Comark」ではありません)。 - リスト: 順序のある手順には番号付きリストを使い、それ以外には箇条書きを使ってください。リスト項目の構造を揃えてください。
- UI とコード: UI 要素には太字を使い、ファイル名、スニペット、コマンド、API 要素には
コードフォントを使ってください。操作について説明する際は、作業内容に焦点を当ててください。 - アクセシビリティ: 見出し、リスト、表などのセマンティック HTML 要素を正しく使ってください。
- メディア: ファイル名には小文字とハイフンを使ってください。すべての画像に、内容を説明する代替テキストを付けてください。
- 絵文字: プロジェクトですでに使用されている場合や、アクセシブルなラベルによって絵文字が必要な意味を伝える場合を除き、装飾的な絵文字は避けてください。
- コールアウト: 本文の流れを中断する必要が本当にある情報に限って、コールアウトを控えめに使ってください。コールアウトを重ねて使わないでください。複数のヒントや注意事項が必要な場合は、関連するセクションに組み込むか、専用のセクションを作成してください。
コード例
コード例は装飾ではなく、説明の一部として扱ってください。理解しやすく、実際に再利用しやすい内容にしてください。
- コンテキスト: 例は、明記した環境で実行できるようにしてください。必要なセットアップとインポートを含めるか、省略した内容を明確に示してください。
- 焦点: 一度に1つの新しい概念を紹介してください。現在のトピックを理解するために、関係のない API や抽象化まで学ばせないでください。
- 名前:
foo、bar、ComponentAなどのプレースホルダーではなく、具体的で親しみやすい名前を使ってください。 - 範囲: 概念を示す、必要最小限で完全な例を提示してください。一般的なユースケースや重要なトレードオフに限り、別の例も追加してください。
- 規約: プロジェクトが現在推奨している構文とコードスタイルに従ってください。疑似コードや意図的に不完全なスニペットには、その旨を明記してください。
- 説明: 読者がコードを見ればすぐに理解できる場合は、コードの説明よりも具体例を示してください。
- インタラクティブな例: プロジェクトにプレイグラウンドやライブサンプルのコンポーネントがある場合は、読者が変更して実行するような例に利用してください。
図
文章で説明するよりも、図を見たほうが読者が関係性をすばやく理解できる場合は、図を使います。
- 使用する場合: リクエストやデータのフロー、ライフサイクル、状態機械、アーキテクチャの概要、判断ツリーには図を追加します。「まず」「次に」「〜でない限り」「その後」といった言葉が並ぶ段落は、図にするのに適しています。
- 使用しない場合: 番号付きリストですでに説明されている直線的な手順や、ページを装飾することだけを目的とする場合は、図を追加しないでください。
- 形式: フェンス付きコードブロック(
```mermaid)で Mermaid を使います。Comark のドキュメントと GitHub の両方でレンダリングされます。Mermaid の図はテキストなので、差分で確認でき、コードの変更に合わせて簡単に更新できます。コードの動作を説明する図には、エクスポートした画像を使わないでください。 - 焦点: 1つの図につき、1つの概念を示します。ノードは約10個以下に抑え、大きな図は分割するか、専用ページにリンクしてください。
- ラベル: 図では、本文やコードと同じ用語を使います。
- アクセシビリティ: それぞれの図の前に、図が何を示しているかを説明する文を置きます。図を見られない読者にも重要な情報が伝わるよう、周囲のテキストにも必要な情報を含めます。
例:
The following diagram shows how a request reaches the cache:
```mermaid
flowchart LR
Request --> Cache{Cached?}
Cache -- Yes --> Response
Cache -- No --> Handler --> Response
```
Comark コンポーネント
Comark Components の仕様全文は、https://comark.dev/raw/syntax/components.md をご覧ください。
Nuxt UI が検出された場合
Phase 0 で Nuxt UI パッケージ(@nuxt/ui)を含む Comark プロジェクトが検出された場合は、GFM アラートや生の HTML ではなく、Nuxt UI typography に記載されている文章用コンポーネントを使います。新しいコンポーネントを導入する前に、プロジェクトの content/ ディレクトリですでに使用されているコンポーネントのセットに合わせてください。
-
コールアウト:
::note、::tip、::warning、::caution、または汎用の::callout{icon="..." to="..."}を使います。各ブロックは::で閉じてください。例:
::note Bodies are parsed lazily on `get()`. :: -
ネスト: コンポーネントをネストする場合は、階層ごとにコロンを1つ追加します(
::card-groupの中にある:::card)。::card-group :::card{icon="i-lucide-rocket" title="Fast"} Parses on demand. ::: :: -
コードのグループ化: 各タブにフェンス付きブロックを1つずつ配置した
::code-groupを使います(```bash [pnpm]` のようなファイル名/ラベル形式)。 -
手順:
###見出しの並びを::stepsで囲みます。 -
タブ: 子要素として
:::tabs-item{label="..."}を含む::tabsを使います。 -
折りたたみ可能なコンテンツ:
<details>の代わりに::collapsibleまたは::accordionを使います。 -
実験的な機能: 機能が実験的であることが明確に示されている場合は、導入段落の直後に次を追加します。
::warning This is an experimental feature currently under active development. ::
カスタムコンポーネント
<Markdown> または <MarkdownDocument> コンポーネントで prop として使われているコンポーネントを確認すると、Markdown で使用できるコンポーネントがわかります。利用可能な props とスロットを確認するには、それらのコンポーネントを参照してください。
GFM フォールバック(プレーンな Markdown プロジェクトと GitHub のメタファイル)
-
詳細セクション:
<details>タグを使って、補足情報やデータ量の多い情報を折りたたみ可能なセクションにします。例:
タイトル
- 1つ目の項目
- 2つ目の項目
-
コールアウト: GitHub Flavored Markdown のアラート(
NOTE、TIP、IMPORTANT、WARNING、CAUTION)を使います。プロジェクトで Markdown に Prettier を実行する場合は、書式が保持されるよう、アラートブロックの直前に空行と ``(.mdxでは{/* prettier-ignore */})を配置します。例(.md):
メモ
これは、Prettier によって保持される複数行の注記の例です。
- 実験的な機能: 機能が実験的であることを示す
> [!NOTE]アラートを、導入段落の直後に追加します。
リンク
- アクセシビリティ: 説明的なアンカーテキストを使い、「ここをクリック」は避けてください。スクリーンリーダーで読み上げた場合など、文脈から切り離されてもリンクの意味が通じるようにしてください。
- ドキュメントでは相対リンクまたはルート相対リンクを使用: プロジェクトで既に使われているリンク形式に従い、すべてのリンクが実在するページに解決されることを確認してください。
README.mdやCONTRIBUTING.mdなどのメタファイルでは、絶対 URL を使用してもかまいません。 - 学習パス: チュートリアルやガイドから任意または上級者向けの資料にリンクする場合は、今すぐ読む必要があるのか、後で戻って読めばよいのかを読者に伝えてください。
- 見出しを変更する場合は、ディープリンクを確認: 見出しを変更した場合は、ほかのページにその見出しへのディープリンクがないか確認し、必要に応じて更新してください。
構成
読者が主要な手順をすぐに見つけ、適切な順序で知識を身につけられるように内容を整理してください。
- BLUF: 最初に、何を期待できるかを説明する導入を書いてください。
- 見出し: 論理的な階層に沿った、簡潔で説明的な見出しを使ってください。役立つ場合は、機能や仕組みだけでなく、読者のタスク、疑問、問題を見出しにしてください。
- 問題を先に説明: 解決策を示す前に、問題と、それが重要になる状況を説明してください。このセクションが自分に関係するかを判断できるよう、十分な背景情報を読者に提供してください。
- 前提知識: 前提条件は冒頭近くに記載し、想定読者にとって一般的ではない知識については参考資料へのリンクを貼ってください。
- 概念を段階的に説明: 説明文と例の両方で、可能な限り一度に新しい概念を一つだけ導入してください。
- 重要な情報を先に提示: 段落やリスト項目の冒頭に、内容が自分に関係するかどうかを判断するのに役立つ概念や操作を示してください。
- 順序: 依存する概念やタスクより先に前提条件を提示してください。高度な内容や専門的な内容より、価値が高く労力の少ない概念を先に説明してください。
- コンテンツの種類: チュートリアルや例と、密度の高いリファレンス資料を一緒にすることで、どちらかが読みづらくなる場合は分けてください。
- 手順:
- 手順のリストを始める前に、完全な文で説明を加えてください。
- 各手順は命令形の動詞で始めてください。
- 順番に進める手順には番号を付け、順不同の項目には箇条書きを使ってください。
- 操作の前に条件を示してください(例:「設定ページで、…をクリックします。」)。
- 操作を行う場所が明確にわかるようにしてください。
- 任意の手順は明確に示してください(例:「任意:…」)。
- 段階的な詳細化: 主要な手順が常にわかるようにしてください。補足情報にはリンク、折りたたみ可能なセクション、コールアウトを使ってください。
- 対象範囲: 選択したテーマを一貫性を保って網羅的に扱ってください。意図的にテーマの一部だけを扱うページでは、冒頭近くにその制限を明記し、完全な情報がある資料を案内してください。
- 目次の使用を避ける: 手動で作成された目次がある場合は削除してください(ドキュメントサイトでは自動生成されます)。
- 次のステップ: 該当する場合は、「次のステップ」セクションで締めくくってください。
コンテンツの種類
ページの目的に合わせて、内容の深さと構成を調整してください。すべてのページを同じ形式に無理に当てはめないでください。
- 入門ガイド: 読者が最初の価値を得るための、最短で確実な手順を示してください。プロジェクトが解決する問題、利用する理由、次に読む資料を説明してください。
- チュートリアルとガイド: 前提条件を明示して、知識を順序立てて積み上げ、複雑さを段階的に増やしてください。任意の寄り道によって、学習の主要な流れが妨げられないようにしてください。
- ハウツーガイド: 実用的な成果を一つ達成することに焦点を当ててください。タスクの完了に必要な条件、手順、確認方法を示してください。
- リファレンス: 明示された範囲を、予測しやすく一覧しやすい構成で完全に網羅してください。連続した説明文より、簡潔な項目を優先してください。
- 移行ガイド: 移行元と移行先のバージョンを明記し、動作が変更された理由を説明して、具体的な移行手順を示してください。
保守性と見つけやすさ
ドキュメントはプロダクトの一部として扱いましょう。実装の近くに置き、見つけやすく、安全に更新できるようにしてください。
- 正本となる情報源: コードとドキュメントの間で必要な重複は許容しますが、複数のドキュメントで同じ説明を維持するのは避けてください。代わりに、正本となる説明へのリンクを設けてください。
- コードの変更: 可能であれば、説明対象となる動作の変更と同時にドキュメントも更新してください。
- 最新の内容: 不正確なドキュメントは不具合として扱ってください。見かけ上の網羅性を保つために古い内容を残すのではなく、削除するか修正してください。
- バージョンへの耐性: 必須でない限り、バージョン、日付、生成された出力、変わりやすい実装の詳細をハードコードするのは避けてください。バージョン固有の手順が必要な場合は、その旨を明記してください。
- 見つけやすさ: ナビゲーション、相互リンク、入口となるページ、近接するページを確認し、新規または移動したコンテンツを、読者が想定される開始地点から見つけられるようにしてください。
- 参照しやすさ: 特定の概念やタスクに直接リンクできるよう、安定した内容を示す見出しと、焦点を絞ったページを優先してください。
- 読者の優先事項: まれなエッジケースより、読者が抱きやすい疑問を先に扱ってください。影響度や発生頻度を考慮して、詳述する価値がある場合はエッジケースも含めてください。
フェーズ 2:準備
ドキュメントを変更する前に、依頼内容とその周辺の状況を十分に調査してください。
- 明確化: 想定読者、その目的、前提条件、変更範囲を特定してください。新しい内容の執筆と既存の内容の編集を区別してください。依頼が曖昧な場合(たとえば「ドキュメントを直して」など)は、詳細を確認してください。
- 調査: 正確性を確認するため、関連するソースコードを調べてください。動作に一貫性がない場合や、説明が著しく難しい場合は、理由を作り上げたり、説明で取り繕ったりせず、その不整合を報告してください。
- 監査: 関連するドキュメントファイルの最新バージョンを読み込んでください。
- 関連付け: 動作を変更する場合は、変更内容を参照しているすべてのページを特定してください。サイトのナビゲーション、相互リンク、想定される入口の更新が必要か確認してください(プロジェクトに応じて、
.navigation.ymlファイル、数値のファイル名プレフィックス、サイドバー設定など)。 - 計画: 編集する前に、まとまりのある最小限の変更と、その検証のための段階的な計画を作成してください。
フェーズ 3:実行
適切なファイルシステムツールを使って既存ファイルを更新するか、新規ファイルを作成し、計画を実行してください。小規模な変更には対象を絞った編集を、新規ファイルや大幅な書き換えにはファイル全体の書き込みを使用してください。
既存ドキュメントの編集
既存のドキュメントのレビューや更新を依頼された場合は、次の追加手順に従ってください。
- 不足箇所: ドキュメントの説明が不十分な領域や、既存のコードを反映しなくなった箇所を特定してください。
- 構成: 既存ページに新しいセクションを追加する際は、「構成」のルールに従ってください。
- 見出し: 見出しを変更する場合は、その見出しに移動するリンクを確認し、必要に応じて更新してください。
- トーン: 能動的で親しみやすいトーンにしてください。「あなた」を使い、短縮形も活用してください。
- 明瞭さ: 不自然な表現、スペルミス、文法上の誤りを修正してください。ユーザーが理解しやすいよう、文を言い換えてください。
- 一貫性: 編集するすべてのドキュメントで用語とスタイルの一貫性を確認してください(「用語は一つの意味に」の項を参照)。
- 重複: 読者の作業を妨げない場合は、重複する説明を統合するか、正本となる情報源へのリンクを設けてください。
フェーズ 4:検証と仕上げ
最終的な品質チェックを行い、すべての変更が正しくフォーマットされ、すべてのリンクが機能することを確認します。
- 正確性: 内容が実装と技術的な動作を正確に反映していることを確認します。
- 自己レビュー: 記載されている前提条件だけを知っている読者の視点で、変更箇所を読み直します。フォーマット、正確性、理解に必要な労力、読みやすさ、文章の流れを確認します。
- 文の確認: 「文単位の制限」を超える文は分割します。編集したすべてのファイルで、各概念に同じ用語が使われていることを確認します。
- 図の確認: 各図が正しく表示され、現在のコードと一致し、本文と同じ用語を使い、導入文があることを確認します。
- 網羅性: 変更が明示された範囲を十分にカバーし、対象読者が抱く可能性の高い疑問に答えていることを確認します。意図的に対応していない点があれば、明確に記載します。
- リンクの確認: 変更したページへのリンクと変更したページからのリンクについて、新規および既存のものをすべて確認します。見出しを変更した場合は、その見出しにリンクしている箇所も更新されていることを確認します。
- フォーマット: プロジェクトでフォーマットまたは lint コマンドが定義されている場合(
package.jsonの scripts を確認)、すべての変更が完了した時点で実行を提案します。ユーザーが承認したら、そのコマンドを実行します。