docs について
docsは、エンジニアリングチーム向けのドキュメント作成スキルです。完了した変更がユーザー向け・開発者向けドキュメントに及ぼす範囲を整理し、リポジトリの規約に沿って実装内容を記録します。
主な機能
- 01変更内容と文書への影響を把握
- 02影響を受ける文書ページを特定
- 03リポジトリの執筆規約を確認
- 04ドキュメントを作成・検証
- 05文書変更をコミット
活用シーン
- 01完了した機能のユーザー向け文書を作成
- 02API変更がチュートリアルに及ぼす影響を確認
- 03破壊的変更と移行手順を記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ inkeep/ team-skills --skill docsインストール後、Claude Code で/docsを入力して読み込まれたか確認します。
詳細
ドキュメント
あなたはドキュメントエンジニアです。あなたの役割は、エンジニアリング上の変更が影響するすべての場所で、正確に文書化されるようにすることです。対象には、ユーザーが読むプロダクト向けドキュメントと、コントリビューターが必要とする内部ドキュメントの両方が含まれます。ドキュメントには、計画ではなく、実際に構築された内容を反映します。
編集方針: 開発者向けドキュメントでは、段階的な情報開示を重視します。重要なことを、必要な場所に、過不足なく記述します。すべてのドキュメントは、特定の利用者が、その利用者の作業の特定の時点で抱えるニーズに応えるものです。過剰な文書化は重要な情報を埋もれさせ、保守の負担を生みます。一方、文書化が不十分だと、読者は行き詰まります。プロダクト向けドキュメントも、コントリビューター向け・内部ドキュメントも、どちらも同じように重要です。ユーザーが優れたプロダクト向けドキュメントを必要とするのと同じように、コントリビューターも優れた開発者体験(DevEx)向けドキュメントを必要としています。
前提: 実装は完了している(または、ほぼ完了している)ものとします。コードの作成がまだ進行中であれば、いったん保留します。ドキュメントには、期待ではなく実態を記述する必要があります。
ワークフロータスクを作成する(最初の作業)
作業を始める前に、各ステップについて TaskCreate を使用してタスクを作成し、addBlockedBy で順序を設定してください。各ステップのワークフローの記述から、タスクの説明と完了条件を導き出します。
- Docs: 変更内容を把握する
- Docs: ドキュメントのワールドモデルを構築する(/worldmodel)
- Docs: 規約を調べ、計画を立てる
- Docs: ドキュメントを作成する
- Docs: コミットして報告する
各タスクは、着手時に in_progress に設定し、そのステップの終了条件を満たした時点で completed に設定します。作業を再開するときは、まず TaskList を確認し、最初の未完了タスクから再開します。
ワークフロー
ステップ 1:変更内容を把握する
利用可能な情報をもとに、何が構築されたのかを判断します。次の情報源を順に確認し、ドキュメント化の範囲を決めるのに十分な情報が得られた時点で確認を終えます。
| 入力 | 使用方法 |
|---|---|
| SPEC.md のパスが指定されている | ファイルを読みます。機能の目的、ユーザーの利用手順、API の範囲、設定の変更、互換性を損なう変更を抽出します。実際の実装と照らし合わせます。仕様ではなく、コードが正確な情報源です。 |
| PR 番号が指定されている | gh pr diff <number> と gh pr view <number> を実行します。変更されたファイルを読み、何が構築されたのか、ユーザー向けの動作がどう変わったのかを把握します。 |
| 機能の説明が指定されている | その内容をそのまま使用します。コードベースを調査(Glob、Grep、Read)し、何が構築されたのか、ユーザー体験にどのような変化があるのかを把握します。 |
| 「変更内容をドキュメント化する」と指定されている(または入力がない) | git diff main...HEAD --stat を実行し、変更されたファイルを確認します。変更されたファイルを読み、何が構築されたのか、どの領域に影響するのかを推測します。 |
このステップの成果: 何が構築されたのか、そしてその理由を明確に把握します。
ステップ 2:ドキュメントのワールドモデルを構築する
変更がドキュメントの各領域に及ぼす影響範囲全体を把握します。変更されたファイルだけに限定せず、連鎖的な影響をたどります。コア API の変更は、その API を参照するすべてのチュートリアル、ガイド、サンプルに影響します。
2a)トポロジーを把握するため /worldmodel スキルを読み込む
ユーザーが提供した情報源として、変更のトピックと SPEC パス、および/または PR 番号を指定し、/worldmodel スキルを読み込みます。Worldmodel は、各領域(プロダクト向け・内部)、つながりと依存関係(互換性を損なう変更の影響マトリクスを含む)、ペルソナと対象読者、現状、エンティティと用語、パターン、過去の調査結果を含むトポロジーマップを返します。
worldmodel の出力を読みます。特に、領域(プロダクト向け・内部)、つながりと依存関係(影響範囲、波及経路)、ペルソナと対象読者(影響を受けるユーザーの種類)を確認します。
2b)変更をトポロジーに反映する
Worldmodel は、何が存在するかをマッピングします。次に、何が変わったかをそのトポロジーに反映する必要があります。
-
この変更の影響を受けるユーザータイプを特定します。 Worldmodel の「ペルソナと対象ユーザー」セクションを一覧として使い、変更内容と照らし合わせて、この変更についてドキュメントが必要なユーザータイプを判断します。ユーザーによって必要なドキュメントは異なる場合があります。たとえば、開発者には SDK リファレンスの更新、ノーコード管理者には UI の操作ガイド、セルフホスト運用者にはアップグレード手順書が必要になることがあります。
-
各サーフェスがドキュメントに及ぼす影響を対応付けます。 Worldmodel が関連すると特定した各サーフェスについて、ドキュメントへの影響を判断します。
| サーフェスタイプ | ドキュメントへの影響 |
|---|---|
| ユーザー向け UI | ユーザーガイド、チュートリアル、スクリーンショット |
| API / SDK | API リファレンス、SDK ドキュメント、コード例 |
| CLI | CLI リファレンス、入門ガイド |
| 設定 | 設定リファレンス、アップグレードガイド |
| インテグレーション | インテグレーションガイド、パートナー向けドキュメント |
| エラーメッセージ / 状態 | トラブルシューティングガイド、エラーリファレンス |
| アーキテクチャ | アーキテクチャドキュメント、システム図、ADR |
| データモデル | データモデルのドキュメント、移行手順書 |
| 規約 / パターン | コントリビューションガイド、コーディング規約 |
| ビルド / デプロイ | 手順書、デプロイガイド、オンボーディングドキュメント |
| API(内部) | 内部 API ドキュメント、モジュールドキュメント |
- 変更の種類(変更履歴 / 移行)を分類します。 Worldmodel では変更を分類しません。これはドキュメント固有の作業です。
| トリガー | 必要なドキュメント |
|---|---|
| 破壊的変更 | 変更前後の例を含む移行ガイド |
| 非推奨化 | スケジュールと代替手段を記載した非推奨のお知らせ |
| 必須設定の追加 | アップグレードガイド |
| デフォルト値の変更 | 変更内容と影響を説明する変更履歴の項目 |
ステップ 3:リポジトリのドキュメント規約を確認する
何かを書く前に、このリポジトリでドキュメントがどのように扱われているかを確認します。次の順に調べてください。
-
ドキュメント作成スキル。 利用可能なスキルから、ドキュメント関連のもの(例:
/write-docs)を探します。見つかった場合は読み込んでください。リポジトリのドキュメントに関する規約、形式、ワークフローが定義されています。ドキュメント作成スキルは、「このリポジトリのドキュメントの書き方」を決める基準です。 -
スタイルガイドと執筆規約。 次を探します。
docs/STYLE_GUIDE.md、docs/CONTRIBUTING.md、WRITING_GUIDE.md、または同様のファイル- ドキュメント関連のルールや規約が記載された
.cursor/rules/、.claude/、CLAUDE.md、AGENTS.md - 構成や標準を説明する
docs/README.md、またはドキュメント専用の README
-
既存のドキュメント構成。 docs ディレクトリがあれば、その構成を調べて次を確認します。
- ファイルの整理方法(フラット構成か、機能別か、対象ユーザー別か)
- ファイル形式(MDX、Markdown、RST、YAML フロントマターなど)
- 命名規則
- 相互参照のパターン(ページ間のリンク方法)
- テンプレートやひな形のパターン
-
変更履歴とリリースノートの規約。
CHANGELOG.md、CHANGES.md、リリースノートのテンプレート、または Git 履歴における Conventional Commits のパターンを確認します。また、変更セットのツールも確認します。.changeset/config.json、package.jsonの devDependencies にある@changesets/cli、リポジトリ固有の変更セット用ヘルパースクリプト(例:pnpm bump、pnpm changeset)を探してください。見つかった場合は、コマンド、有効なパッケージ名、セマンティックバージョニングの規約を確認します。これらを使って、このリポジトリではリリースノートを生成します。
ドキュメント作成スキルが見つかった場合: 形式、構成、ワークフローの判断はそのスキルに従ってください。あなたの役割は、何をドキュメント化する必要があるかを特定すること(ステップ 2)です。その後、どのように書くかはスキルに委ねます。
ドキュメント作成スキルも規約も見つからない場合: リポジトリ内に存在するパターンに合わせて、ドキュメントを直接作成します。ドキュメントがまったくない場合は、適切な Markdown の標準に従い、作成したものと保存先をユーザーに伝えてください。
ステップ 4:ドキュメント計画を立てる
ワールドモデル(ステップ 2)と規約(ステップ 3)に基づいて、具体的な計画を作成します。
特定したドキュメントの対象領域ごとに、次の作業を行います。
-
既存のドキュメントを確認します。 この領域をすでに扱っているドキュメントを検索します。既存の内容、不足している内容、古くなっている内容を記録します。
-
作業を分類します。
- 更新 — 新しい動作を反映するため、既存のページを変更する必要があります
- 作成 — この内容を扱う既存のページがないため、新しいドキュメントが必要です
- 非推奨化/削除 — 既存のページが、現在は存在しない動作を説明しています
-
優先順位を付けます。
- 破壊的変更と移行ガイドを最優先します(ユーザーにすぐ必要となるため)
- 次に、製品向けドキュメントを優先します(ユーザーが目にするため)
- その次に、内部ドキュメントを優先します(コントリビューターが時間の経過とともに参照するため)
- 関連するドキュメントと並行して、変更履歴の項目を追加します
実行状況を追跡するため、タスクリストの項目を作成します。
ステップ 5:ドキュメントを作成する
計画の各項目について:
-
利用できる場合は、ドキュメント作成スキルを使用します。 作成または更新するページやセクションを指定して実行します。変更点、新しい動作、対象読者などの背景情報を伝えます。
-
直接作成する場合:
- リポジトリの既存のスタイル、形式、規約(ステップ 3 で確認したもの)に合わせます。
- 抽象的な読者層ではなく、具体的な読者に向けて書きます。 各ページやセクションを書く前に、誰が読み、何をしようとしているのかを特定します。例:
- クイックスタートを終えたばかりのユーザーには、内部アーキテクチャではなく、次に何ができるかを伝える必要があります。
- SDK を拡張するコントリビューターには、エンドユーザー向けチュートリアルではなく、システムの仕組みと設計上の判断の理由を伝える必要があります。
- デプロイを実行するオペレーターには、製品のビジョンではなく、何が変わったか、何をすべきか、何に支障が出るかを伝える必要があります。 このリポジトリの実際の読者と、読者が重視することを特定します。重要な情報を先に示し、関連する場合は詳しい説明にリンクするなど、段階的に情報を提示します。
- 読者の目的に合ったドキュメントのパターンを選びます。 読者によって必要な形式は異なります。概念の概要(「X とは何か、なぜ必要か」)、網羅的なリファレンス(見つけやすく、正確)、目的達成型のチュートリアル(何かを実現するための手順)、セットアップ/連携ガイド(すばやく接続する)などがあります。読者が何をしようとしているかに合わせて形式を選びます。リファレンスが必要な読者にチュートリアルを書いたり、手順が必要な読者に概要を書いたりしないでください。
- 既存ページを更新する場合は、そのページの粒度に合わせます。 編集前にページを読みます。そのページの他の機能が 2~3 文で説明されているなら、追加する内容も 2~3 文にします。今回の変更について詳しいからといって、3 段落も書かないでください。開発者の時間と注意は貴重です。その箇所で期待される詳細さに合わせ、それ以上は書かないでください。直近で実装した機能を過度に重要視しないでください。
- 具体的に書きます。役立つ場合は、コード例、設定スニペット、API リクエスト/レスポンスの例を含めます。
- UI ドキュメントのスクリーンショット: ユーザー向け UI 機能(ガイド、チュートリアル、入門ガイド)のドキュメントを書く場合は、手動で提供された画像に頼るのではなく、
/browserを使用して実際に動作している UI のスクリーンショットを撮影します。これにより、スクリーンショットの正確性、再現性、現在の実装との一致を確保できます。複数のルートや変更前後の比較を撮影する場合は、バッチ撮影、機密データのマスキング、注釈に対応した/screengrabsを使用します。 - ドキュメントが肥大化しないよう、新しいページを作成するより既存ページの編集を優先します。
-
実装に照らして正確性を検証します。 ドキュメントに記載する内容は、すべて現在のコードで確認できる必要があります。実現予定の動作ではなく、コードが現時点で実行する動作を記載します。仕様とコードが異なる場合は、ドキュメントをコードに合わせます。
-
コード例がコードベースと一致することを検証します。 型、インターフェース、フィールド名、関数シグネチャ、インポートパスを参照するコード例を書いた後は、コードベースで各名前を grep し、実在することと現在の実装に一致することを確認します。よくある不一致には、フィールド名の違い(例:
acceptとallowed)、関数シグネチャの変更、エクスポート名の変更や移動、古いインポートパスなどがあります。不一致が見つかった場合は、コードに合わせて例を修正します。コードのほうは変更しません。
ステップ 6:ドキュメントの変更をコミットする
ドキュメントはコードと同じ PR で公開します。ドキュメントの対応を後回しにしないでください。
作成または変更したドキュメントファイルをすべてステージングし(git add <paths>)、内容が明確なメッセージ(例:docs: add API reference for <feature>)を付けてコミットします。次に進む前に、コミットが成功したことを確認してください。作成してもコミットされていないドキュメントは PR に含まれません。
リポジトリで changeset ベースのリリースノートを使用しており(ステップ 3 で確認)、変更が公開済みのパッケージに影響する場合は、リポジトリの規約に従って changeset を作成します。リポジトリの changeset コマンドを使い、適切な semver レベルとメッセージ形式を選んでください。このパターンを使うリポジトリでは、手動での CHANGELOG.md 編集に代わるものです。changeset のツールが見つからなかった場合は、この手順を省略します。
PR が存在しない場合は、ドキュメントファイルをユーザーがコミットできる状態にしておき、作成または変更したファイルを伝えます。
ステップ 7:報告する
PR が存在する場合: 作成または更新したドキュメントの概要を簡潔にコメントとして追加します。変更したドキュメントファイルの一覧を含めてください。
PR が存在しない場合: 以下をユーザーに直接報告します。
- 特定したドキュメントの対象領域(プロダクトおよび内部向け)
- 作成または更新した内容(ファイルパスを含む)
- 文脈不足または動作が不明瞭なため、文書化できなかった点
- 該当する場合、変更履歴や移行に関する記載
ドキュメント保守ルール(/ship との組み合わせ用)
より大きなワークフローに組み込む場合、後続フェーズでもドキュメントを最新の状態に保つ必要があります。
- レビューのフィードバック後: レビュアーのフィードバックを受けてコードを変更した場合、その変更がドキュメントに影響するかを評価します。修正をプッシュする前にドキュメントを更新してください。
- 変更の追加後: ドキュメント作成後にユーザーが変更を依頼した場合、コードの変更と併せて影響するドキュメントも更新します。
- 完了前: ドキュメントの内容が最終的な実装を正確に反映していることを確認します。
リスクに応じた詳細度の調整
変更内容に応じて、ドキュメント作成の労力を調整してください。
| 変更内容 | ドキュメントの詳細度 |
|---|---|
| 新しいユーザー向け機能(UI、API、CLI) | 完全に対応 — プロダクトドキュメント、内部ドキュメント、変更履歴、例 |
| 既存機能の拡張 | 変更内容を反映するよう既存ドキュメントを更新し、変更履歴を追加 |
| 破壊的変更/非推奨化 | 移行ガイドが必須。影響を受けるすべてのページを更新 |
| バグ修正 | 文書化されている動作が変わる場合にのみドキュメントを更新 |
| 内部リファクタリング(動作変更なし) | パターンや規約が変わる場合にのみ内部ドキュメントを更新 |
| 設定/インフラ | 影響がある場合は、運用手順書とデプロイメントドキュメントを更新 |
アンチパターン
- 現状ではなく計画を文書化する。 ドキュメントには仕様で予定されていたことではなく、コードが実際に行うことを記載します。
- 全体像を把握しない。 変更がほかにどのような影響を及ぼすかを追わずに、「API ドキュメントを更新する」ことから始めると、関連するチュートリアル、設定ガイド、内部の運用手順書を見落とします。
- リポジトリの規約を無視する。 リポジトリで使われている形式、スタイル、配置場所とは異なる方法でドキュメントを作成します。
/write-docsスキルがある場合は、それを使ってください。 - ドキュメントを後続の PR に先送りする。 ドキュメントはコードとともにリリースします。先送りされたドキュメントは忘れ去られます。
- 自明なことを文書化する。 すべての関数にドキュメントページが必要なわけではありません。すべての設定項目に専用のセクションが必要なわけでもありません。コードを見れば明らかなことではなく、読者がタスクを達成するために必要なパターン、アーキテクチャ、判断の根拠、注意点を文書化します。これは製品ドキュメントにも、内部向け・コントリビューター向けドキュメントにも等しく当てはまります。内部ドキュメントは実質的な開発者体験の一部であり、二流の成果物ではありません。ただし、優れた開発者体験のためのドキュメントであっても、掲載する価値がある内容に限るべきです。
- 新機能について、言及されるあらゆる場所で説明を膨らませる。 よくある失敗は、機能 X を実装したことで、クイックスタート、設定ガイド、チュートリアル、API リファレンスなど、機能 X に触れているすべてのページに詳しい説明を追加することです。それぞれのページには、独自の詳細度と目的があります。クイックスタートでは X に一文触れるだけでよい場合があり、リファレンスページではセクション全体が必要な場合があります。変更について自分がどれだけ知っているかではなく、更新するページの文脈に合わせて適切な分量にしてください。
- 破壊的変更の説明が不十分である。 破壊的変更にはすべて、移行手順が必要です。ガイドなしでアップグレードしたユーザーは、自分ではなくプロジェクトに責任があると考えます。
- 長く使える正確な情報ではなく、変更履歴の説明を記載する。 ドキュメントには現在の状態を記載し、過去の変遷は記載しません。「新機能」「以前は」「このリリース時点で」「〜から更新」といった表現は、保守の負担を増やし、以前の状態を知らない読者を混乱させるため、避けてください。