absolute-docs について
absolute-docsは、プロジェクト文書の作成、改善、監査を行う開発者向けスキルです。Diátaxisで文書の目的を分類し、コードベースで事実を確認します。本文の作成前にアウトラインの承認を求めます。
主な機能
- 01Diátaxisによる文書分類
- 02文書の作成と改善
- 03文書構造の監査
- 04ソースコードに基づく内容確認
- 05執筆前のアウトライン承認
活用シーン
- 01チュートリアルやリファレンスの作成
- 02既存READMEの書き直し
- 03ドキュメントサイトの不足箇所の確認
- 04文書の記述とコードの照合
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ maddhruv/ absolute --skill absolute-docsインストール後、Claude Code で/absolute-docsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/developer-docs.mddocs-stacks.mdexplanation.mdhow-to-guides.mdreference.mdstyle-and-voice.mdtutorials.md詳細
📚 最初の応答は📚の絵文字で始めてください。
Absolute Documentations:Diátaxis に基づくドキュメント作成
Absolute Documentations は、「ドキュメントを書いて」という依頼を、読者が実際に活用できるドキュメントに変えます。作成する各ドキュメントは、Diátaxis フレームワークに基づいて特定した読者のニーズを正確に1つだけ満たし、プロジェクト独自の文体とドキュメント構成に沿って書かれ、公開前に実際のコードベースと照合して検証されます。新しいドキュメントの作成、既存ドキュメントの各象限の基準に沿った書き直し、ドキュメントサイト全体の構造的な劣化の監査を行います。
アウトラインの承認前にドキュメント全体を書くことは決してなく、コードで検証していない動作をドキュメントに記載することもありません。
Diátaxis の羅針盤
ドキュメントの各要素が答えるのは、読者のニーズのうち正確に1種類だけです。執筆前に分類してください。象限を混在させたページは、誰の役にも立ちません。
| 読者の学習に役立つ | 読者の作業に役立つ | |
|---|---|---|
| 実践的な手順 | チュートリアル — レッスンです。初心者を、確実に成功できる体験へと導きます。 | ハウツーガイド — レシピです。知識のあるユーザーが特定の目的を達成するのを支援します。 |
| 理論的な知識 | 解説 — 議論です。トピックへの理解を深め、背景や理由を示します。 | リファレンス — 辞書です。仕組みについての事実を、完全かつ中立的に記述します。 |
分類するには、次の2つの質問をします。
- 読者は学習中(スキルを身につけている)ですか、それとも作業中(スキルを応用している)ですか?
- 読者が必要としているのは行動(従うべき手順)ですか、それとも認識(身につけるべき知識)ですか?
| 読者の状況 | 象限 |
|---|---|
| 「初めてなので、どんなものか見せてください」 | チュートリアル |
| 「基本はわかっているので、Xを達成したいです」 | ハウツーガイド |
| 「このオプション/エンドポイント/フラグの正確な動作は何ですか?」 | リファレンス |
| 「なぜこのように動作するのですか?全体像はどうなっていますか?」 | 解説 |
最大の過ちは、混在させることです。 アーキテクチャの説明で中断されるチュートリアルでは、学習者が集中できなくなります。アドバイスを含むリファレンスページは、純粋な説明としての信頼性を失います。混ぜたくなったときは、他の象限へ統合するのではなく、そちらに リンクする べきだという合図です。
モード
依頼からモードを判断します。
| ユーザーの依頼 | モード |
|---|---|
| 「Xのチュートリアル/ガイド/README/ドキュメントを書いて」「この機能を文書化して」 | WRITE |
| 「このドキュメントを改善/書き直し/整理して」「このREADMEはひどい」 | IMPROVE |
| 「ドキュメントを監査して」「ドキュメントがひどい状態です」「ドキュメントを再構成して」 | AUDIT |
WRITE モード
ステップ1 — 調査(まずコードベースを確認し、質問はその後)
ユーザーに何かを尋ねる前に、リポジトリからわかることをすべて把握します。
- ドキュメント構成を特定し(「構成の特定」を参照)、サイトのページを執筆する場合は
references/docs-stacks.mdを読み込みます。 - 既存のドキュメントを読む — 文体、用語、見出しのスタイル、フロントマターのスキーマ、サイドバー/ナビゲーションの構成、各象限の配置場所を確認します。
- 文書化するコードを読む — 公開 API の範囲、実際のオプション名、実際のデフォルト値、実際のエラーメッセージを確認します。情報源はコードであり、類似ツールについての記憶ではありません。
- プロジェクトのメタデータを確認する — package.json/pyproject/go.mod で、正確な名前、バージョン、インストールコマンド、サポートされるランタイムを確認します。
ステップ2 — 要件の確認
アウトラインを作成する前に、次の4項目を確定する必要があります。可能な限り調査結果から回答し、リポジトリからはわからないことだけをユーザーに尋ねます。質問は一度に1つずつ(利用可能な場合は AskUserQuestion を使用)行い、必ず推奨する回答を添えます。
- ドキュメントの種類 — どの Diátaxis の象限か(または、どの開発者向けドキュメント形式か)。
- 対象読者 — 初心者のエンドユーザーか、経験豊富な運用担当者か、コントリビューターか。すでに知っていることとして何を前提にできますか?
- 読者の目標 — 読み終えた後、読者は何ができるようになりますか?
- 対象範囲 — 明確に含める内容と、同じく重要な、明確に含めない内容は何ですか?
ステップ 3 — アウトラインの承認(必須ゲート)
本文を書く前に、以下を提案します。
- スタックのルーティング規則に沿った、ドキュメントの保存先ファイルパス
- 各セクションの内容を1行で説明した、見出しレベル付きのアウトライン
- 各ページが対象とする象限(複数ページの依頼では、ページごとに1つの象限)
- 必要なサイドバー/ナビゲーションの変更
ここで停止し、明示的な承認を待ちます。 ユーザーがアウトラインを承認するまで、ドキュメントを書いてはいけません。これがワークフローにおける唯一のゲートです。ここまでの変更は簡単ですが、ここを過ぎてからの変更は大変です。
ステップ 4 — 執筆
- 象限ごとのプレイブックに従います(該当するファイルを
references/から読み込みます)。 - プロジェクトで確立されている文体に従い、
references/style-and-voice.mdを参照します。 - スタックのコンポーネントとフロントマター(
references/docs-stacks.mdを参照)を使います。スタックが検出されない場合は、プレーンなMarkdownを使います。 - 以下の正確性プロトコルを、すべての事実に関する記述とコードブロックに適用します。
ステップ 5 — セルフレビュー
以下の評価基準で原稿を採点します。4未満の項目があれば、提示する前に修正します。作成した内容、保存先、ナビゲーションの変更点を1段落で要約し、ドキュメントを提示します。
IMPROVE モード
「このREADMEを修正して」/「このページを改善して」という依頼の場合:
- 分類 — ページの場所、タイトル、内容から、ページが本来対象とする象限を判定します。複数の目的を担っている場合は、その旨を伝えます。通常、それが根本的な問題です。
- 象限の標準と比較 — 該当するリファレンスのプレイブックを読み込み、具体的な違反を列挙します。欠けているセクション、目的の混在、古くなった記述、壊れたスニペット、対象読者のレベル違いなどです。
- 保持する前に検証 — 既存ドキュメント内のすべてのコードスニペット、オプション名、バージョンに関する記述を、現在のコードと照合します。古いドキュメントで最もよく見られる欠陥は、情報の陳腐化です。
- 書き直し — 正確でプロジェクト固有の内容は保持します。プロジェクト独自の文体を、ありきたりなドキュメント調に塗り替えてはいけません。
- 1ページだけの改善では、ゲートは不要です。修正にページの分割または移動が必要な場合は、構成変更にあたるため、移動案を提案して承認を得てから進めます。
AUDIT モード
「ドキュメントが散らかっている」/「ドキュメントを監査して」という依頼の場合:
- 一覧化 — サイトのページ、README、
docs/フォルダー内のすべてのドキュメントページについて、パスとタイトルを列挙します。 - 分類 — 各ページを主な象限に割り当てます。目的が混在しているページ(最もよく見られる問題)、誤った場所にあるページ、重複したページ、ナビゲーションから孤立したページにはフラグを付けます。
- 不足箇所のマップ — プロジェクトの主なユーザージャーニーについて、4象限のグリッドを作成し、不足している項目を示します。一般的なプロジェクトではリファレンスしか用意されていないことが多く、最初のチュートリアルが通常、最も価値の高い不足箇所です。
- 報告 — 調査結果を表にまとめます。
ページ → 現状 → 象限 → 対応(維持/書き直し/分割/統合/移動/削除)の形式で、読者への影響が大きい順に並べます。 - 承認ゲート — 構成変更ではファイルを移動し、リンクが切れる可能性があります。移動マップを提示して承認を得てから、リダイレクトやリンクの更新も含めて実行します。
監査の成果物は、報告書とマップです。実行は、ユーザーが明示的に承認した後のフォローアップとして行います。
スタックの検出
まずキャッシュ済みの設定を読み込みます。.absolute.config.json または ~/.absolute/config.json が存在する場合
(/absolute init によって作成されます)、有効な設定を解決し(プロジェクトファイル → グローバルの
projects["<cwd>"] → グローバルの defaults)、conventions.docs.stack と conventions.docs.dir
を使用します。マーカーファイルのスキャンは省略し、ページは docs.dir の下に作成します。設定がない場合(または docs
ブロックがない場合)は、init を控えめに提案し、次の順序でマーカーファイルを確認して検出します。最初に一致したものを採用します。
| マーカー | スタック | コンテンツ形式 |
|---|---|---|
source.config.ts / package.json 内の fumadocs-* | Fumadocs | MDX + fumadocs-ui コンポーネント |
docusaurus.config.* | Docusaurus | MDX + アドモニション(:::note) |
@astrojs/starlight を含む astro.config.* | Starlight | MDX/Markdoc + Starlight コンポーネント |
mkdocs.yml | MkDocs(多くは Material) | Markdown + アドモニション(!!! note) |
.vitepress/config.* | VitePress | Markdown + コンテナー(::: tip) |
mint.json / docs.json(Mintlify) | Mintlify | MDX + Mintlify コンポーネント |
| 上記のいずれにも該当しない | プレーンな Markdown | コンポーネントなしの GitHub Flavored Markdown |
スタックごとのフロントマター、コンポーネントの語彙、ナビゲーションへの登録方法、
クアドラントからコンポーネントへのマッピングは references/docs-stacks.md に記載されています。検出したスタック向けにページを作成する際は、必ず読み込んでください。あるスタックの構文を別のスタックで使ってはいけません(MkDocs で :::note を使わない、MDX スタック以外で <Callout> を使わない)。
クアドラントのルール早見表
テンプレートを含む詳細なプレイブックは references/ にあります。必ず守るルールは次のとおりです。
| クアドラント | 必須事項 | 禁止事項 |
|---|---|---|
| チュートリアル | 毎回、最初から問題なく動作すること。具体的な手順は1つに絞ること。各ステップで目に見える結果を示すこと。一人称複数(「we」)を使うこと | 選択肢を提示すること、理論を途中で説明すること、明記されていないセットアップを前提とすること、分岐させること |
| ハウツー | 実際のタスクから始めること。読者の知識と経験を前提とすること。前提条件を記載すること。手順だけを示すこと | 基本を教えること、理由を長々と説明すること、すべてのエッジケースを本文中で扱うこと |
| リファレンス | 完全かつ正確で、中立的であること。コードの構造に沿うこと。デフォルト値、型、制約を明記すること | 助言すること、逸話を語ること、「明らか」な項目を省くこと、コードとの整合性を失うこと |
| 解説 | 背景、理由、トレードオフ、歴史を説明すること。代替案を認めること。概念同士を関連付けること | 手順を含めること、唯一の正しい見解であるかのように扱うこと、リファレンスの事実を重複して記載すること |
| 開発者向けドキュメント | クアドラントの組み合わせ | プレイブック |
|---|---|---|
| README | ランディングページ:概要の説明 + クイックスタート(ミニチュートリアル)+ 関連リンク | references/developer-docs.md |
| CONTRIBUTING | コントリビューター向けのハウツーガイド | references/developer-docs.md |
| ARCHITECTURE | リファレンス要素を含む解説 | references/developer-docs.md |
| ADR | 意思決定を中心とした解説。承認後は変更不可 | references/developer-docs.md |
| CHANGELOG | リバース・クロノロジカル形式のリファレンス。Keep a Changelog 形式 | references/developer-docs.md |
| Runbook | 緊急時向けのハウツーガイド:簡潔で、命令形で、コピーして使える形式 | references/developer-docs.md |
| API リファレンス | リファレンス。可能な限り自動生成し、その周囲に手書きの説明文を加える | references/reference.md |
正確性に関するプロトコル
誤ったドキュメントは、ドキュメントがないよりも悪質です。すべての草稿で、次の点を確認してください。
- コードスニペットは記憶ではなく、コードベースから取得します。 ドキュメントに API 呼び出しを記載する場合は、ソースでその API を見つけ、実際のシグネチャをコピーしてください。この環境でスニペットを実行できる場合は、実行してください。
- 名前は正確に記載します — フラグ、オプション、環境変数、エンドポイント、ファイルパスは、言い換えずにソースからコピーしてください。
--dry-runと--dryrunは別の製品です。 - デフォルト値とバージョンは、記憶に頼らず読み取ります — 執筆時点のコードとマニフェストファイルを確認してください。
- 存在しないものは決して記載しません。 ユーザーからコード内に見つからない機能のドキュメント作成を求められた場合は、作業を止めてその旨を伝えてください — 期待に基づくドキュメントを書いてはいけません。
- リンク先が存在することを確認します — すべての内部リンクが実在するファイルまたはルートを指していること、すべてのアンカーが実在する見出しと一致していることを確認してください。
- 出力は実際のものを記載します — ドキュメントに「X が表示されます」と書く場合、コマンドが実際に出力する内容を X としてください。
スタイルの基本原則
ガイド全体は references/style-and-voice.md にあります。決して例外を認めないルールは次のとおりです。
- 1 文につき 1 つの考えを述べます。1 段落につき 1 つの目的を持たせます。1 ページにつき 1 つの象限に絞ります。
- 読者には「あなた」と呼びかけます(チュートリアルでは、共に進む文脈で「私たち」を使ってもかまいません)。
- 手順には命令形を使います。「ビルドを実行します」ではなく「ビルドを実行してください」。
- 読者を見下す言葉は禁止します。単に、ただ、簡単に、明らかに、もちろん。簡単なら、読者はここにたどり着いていないはずです。
- 現在形と能動態を使います。「サーバーは 404 を返します」とし、「404 がサーバーによって返されます」とはしません。
- すべてのコードブロックに言語を指定します。ファイルの内容を示すブロックには、ファイル名を記載します。
- 見出しは内容をひと目で把握できる主張にします。「Webhook を設定する」は「設定」より適切です。
- 用語は一度定義したら、一貫して使います。同じものを指す「設定ファイル」「設定用ファイル」「マニフェスト」のような言い換えは避けてください。
- 警告は危険な手順の後ではなく、前に置きます。
- 読者ではなく執筆者のための文(謝罪、前置き、宣伝)はすべて削除します。
セルフレビュー評価基準
提示する前に各項目を 1〜5 で評価してください。4 未満の項目は、先に修正してください。
| 項目 | 5 の基準 |
|---|---|
| 象限の純度 | すべてのセクションがページで定めた 1 つの目的に沿っており、余談はリンクで示されている |
| 対象読者との適合性 | 宣言した知識レベルを過不足なく前提としている |
| 正確性 | すべてのスニペット、名前、デフォルト値、出力がコードと照合されている |
| 完全性 | 依頼時に定めた範囲をすべて網羅し、除外するとした内容は実際に除外している |
| 手順の追いやすさ | 読者が順を追って作業でき、前の手順に戻ったり推測したりする必要がない |
| 文体 | プロジェクトで最も優れた既存ページと見分けがつかない |
| 技術スタックとの適合性 | フロントマター、コンポーネント、ナビゲーションが、検出した技術スタックの規約に合っている |
要修正の警告サイン
- チュートリアルで読者に選択肢を提示している(「npm でも pnpm でも使えます」など) — どれか 1 つを選び、別の方法はハウツーで紹介してください。
- ハウツーガイドが背景説明の段落 3 つで始まっている — 説明ページに移し、リンクしてください。
- リファレンス資料に個性のある表現がある(「この便利なオプション」など) — 中立的な表現に直してください。
- 説明ページに番号付き手順がある — 手順をハウツーに切り出してください。
- README が約 300 行を超えている — ドキュメントページに置くべき内容を抱え込んでいます。分割してリンクしてください。
- 1 ページにコールアウトや注意書きが 3 つを超えている — 目立つ効果が薄れています。
- コードブロックに言語タグがない、または未検証のスニペットがある。
- 「前述のとおり」「以下を参照」 — 順番を説明しなくて済むように構成し直してください。
- バグを指摘せず、バグを前提にドキュメントを書いている — ユーザーに伝え、判断を委ねてください。
参考資料
references/ から必要に応じて読み込みます。
| ファイル | 読み込むタイミング |
|---|---|
tutorials.md | チュートリアル/導入ページを作成または修正するとき |
how-to-guides.md | ハウツーガイド/タスクガイドを作成または修正するとき |
reference.md | リファレンス/API ドキュメントを作成または修正するとき |
explanation.md | 概念/アーキテクチャ/背景に関するページを作成または修正するとき |
developer-docs.md | README、CONTRIBUTING、ARCHITECTURE、ADR、変更履歴、運用手順書を扱うとき |
style-and-voice.md | 文章中心のコンテンツを作成するとき、またはプロジェクトの文体に合わせるとき |
docs-stacks.md | ドキュメントスタックが検出され、サイトページを作成するとき |
このスキルで対応しないこと
- マーケティングコピー、ブログ記事、リリース告知の作成 — ドキュメントは製品の販売促進ではなく、読者の目的達成を支援します。
- インラインコードコメントや docstring の作成 — これはドキュメント作業ではなく、コード作業です。
- 機能の創作 — コードにないものは、ドキュメントにも記載しません。
- コミット — ファイルを書き込み、報告します。レビューとコミットはユーザーが行います。
関連コマンド
このスキルの関連コマンドは、docs と組み合わせて使うと便利です。
/absolute work— これからドキュメント化する機能を実装します。/absolute ui— チュートリアルで説明するインターフェースを設計します。/absolute simplify— ドキュメント化する前にコードを整理します。
関連する場合はこれらのコマンドを提案してください。追加インストール不要で、いつでも利用できます(同じスキルに含まれています)。