mcpField
P
pp-apple-docs

pp-apple-docs

github.com/mvanhorn開発2.1k65 回インストール今日更新
リポジトリ

pp-apple-docs について

pp-apple-docsはPrinting Press CLIでAppleの開発者向けドキュメントを調べるスキルです。Swift開発やAppleプラットフォーム移行を行う開発者とエージェント向けに、ローカルインデックスを使ったシンボル検索や変更分析を提供します。

主な機能

  1. 01DocCの項目を選んで取得
  2. 02シンボルと関連ページの集約
  3. 03プラットフォーム移行先の検索
  4. 04フレームワーク索引スナップショットの比較
  5. 05シンボルと非推奨APIの検索
  6. 06プロトコル準拠型の一覧

活用シーン

  1. 01Swiftコード生成のAPI情報確認
  2. 02Appleプラットフォーム移行の計画
  3. 03バージョン間のAPI変更確認
  4. 04非推奨APIガイドの作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-apple-docs

インストール後、Claude Code で/pp-apple-docsを入力して読み込まれたか確認します。

詳細

Apple Developer Documentation — Printing Press CLI

前提条件:CLI のインストール

このスキルは apple-docs-pp-cli バイナリを使用します。このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。インストールされていない場合は、まずインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。バイナリのインストール先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin がデフォルトです。
    npx -y @mvanhorn/printing-press-library install apple-docs --cli-only
    
  2. 次のコマンドで確認します:apple-docs-pp-cli --version
  3. 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの $PATH に含まれていることを確認してください。

npx によるインストールが失敗した場合(Node がない、オフラインなど)は、Go で直接インストールしてください(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/developer-tools/apple-docs/cmd/apple-docs-pp-cli@latest

インストール後に --version が「command not found」と報告する場合、ランタイムからバイナリのディレクトリを $PATH 経由で参照できていません。確認が完了するまで、スキルのコマンドを実行しないでください。

この CLI を使う場面

ターミナルから Apple のドキュメントを読む必要がある場合、エージェントが最新の Apple API に基づいて Swift コードを生成する場合、プラットフォーム移行を計画する場合(iPad → visionOS、AppKit → SwiftUI)、または「iOS N で非推奨になったもの」のガイドを作成する場合に、この CLI を使用してください。ローカルの SQLite ストアを使えば、オンラインのドキュメントビューアーではできない、フレームワーク横断検索、スナップショットの差分、非推奨化の集中確認などのクエリを実行できます。

使用しない場面

この CLI は次の用途には使用しないでください。

  • Apple ID または App Store Connect API の呼び出しを作成する用途には使用しないでください。それらには別の App Store Connect CLI を使用してください。
  • Swift パッケージマネージャーとして使用しないでください。この CLI が読み取るのはドキュメントであり、ソースではありません。
  • WWDC の動画の全トランスクリプトを取得する用途には使用しないでください。ドキュメントページから WWDC の参照情報をインデックス化しますが、動画コンテンツはホストしていません。

独自の機能

この API に対応する他のツールでは利用できない機能です。

エージェント向けの連携機能
  • doc get — 50KB 以上の DocC JSON ページを、エージェントが実際に必要とするフィールド(概要、シグネチャ、プラットフォーム、またはそのすべて)だけに絞り込めるため、検索のたびにコンテキストトークンを節約できます。

    Apple のシンボルに基づいてエージェントがコードを生成し、完全な説明や関連項目のツリーではなく、概要、シグネチャ、対応プラットフォームの下限だけを必要とする場合に使用してください。

    apple-docs-pp-cli doc get 'swiftui/view/onappear(perform:)' --shape min --agent
    
  • bundle — シンボルの Markdown と深さ 1 の「関連項目」ページを、トークン予算に合わせた 1 つのデータにまとめ、エージェントのプロンプトにそのまま貼り付けられるようにします。

    N 回の往復や N 回の JSON 解析を行わずに、シンボルとその最も近い関連項目について自己完結したコンテキストデータが必要な場合に使用してください。

    apple-docs-pp-cli bundle 'swiftui/view/onappear(perform:)' --depth 1 --max-tokens 4000
    
蓄積されるローカル状態
  • port-to — シンボルが対象プラットフォームで利用できない場合は、See-Also/Replacement-Of グラフをたどり、そのプラットフォームで利用可能で、それ自体が非推奨ではない代替に到達します。

    Apple プラットフォーム間でコードを移植する場合(iPad → visionOS、AppKit → SwiftUI、非推奨 → 現行)、似た名前の API ではなく移行先が必要なときに使います。

    apple-docs-pp-cli port-to visionOS uikit/uitableview --agent
    
  • snapshot diff — 保存された 2 つのフレームワークインデックスのスナップショットを比較し、各差分を追加、削除、非推奨、または名前変更の可能性あり(パスの語幹の類似性)に分類します。

    WWDC やドットリリースのたびに、フレームワークレベルで追加/削除/非推奨になったシンボルを洗い出すときに使います。

    apple-docs-pp-cli snapshot diff swiftui --from 2025-06-09 --to 2026-05-28 --agent
    
  • deprecation-cliff — 指定したプラットフォームバージョンで非推奨になった Apple API をすべて、フレームワークとシンボルの種類ごとに分類して一覧表示し、参照情報から置き換えのヒント列を結合します。

    移行スプリントを計画するときや、「今年非推奨になったもの」のガイドを作成するときに使います。全リストを一度に取得する唯一の方法です。

    apple-docs-pp-cli deprecation-cliff --os iOS --version 18 --framework swiftui --agent
    
  • conformance — フレームワークの relationshipsSections をたどり、プロトコルの具体的な適合型と、そのプロトコルの祖先を列挙します。

    プロトコル駆動のコード(カスタム View、ObservableObject、Layout)を書く際、適合する具体的な型をすべて確認する必要があるときに使います。

    apple-docs-pp-cli conformance View --framework swiftui --agent
    
  • grep — 同期済みのすべてのフレームワークのシンボルを、種類、対象プラットフォーム、非推奨状態で絞り込みながら正規表現で検索します。

    シンボル名の形は覚えているものの、どこにあるか分からないときや、Apple SDK 全体で API のパターンを監査するときに使います。

    apple-docs-pp-cli grep onAppear --framework swiftui --json
    
サービス固有のパターン
  • wwdc symbols — WWDC セッション ID を指定して、そのセッションを参照しているドキュメントページを持つシンボルをすべて一覧表示します。

    WWDC セッションを視聴した後に、取り上げられた API をすべて列挙するときや、作業中の API がどのセッションで正式に導入されたかを調べるときに使います。

    apple-docs-pp-cli wwdc symbols wwdc2024-10169 --agent
    

コマンドリファレンス

doc get — パスを指定してドキュメントページ(フレームワークのルート、シンボル、メソッド、記事)を取得します。

  • apple-docs-pp-cli doc get <path> — パスで指定したドキュメントページを取得し、ツールが必要とする形式で返します(未加工の DocC JSON、--shape abstract|signature|platforms|min による変換、または --markdown による Markdown 形式)。パスは /documentation/ 以下の小文字とスラッシュで構成される識別子です。例:swiftui/view、swiftui/view/onappear(perform:)、foundation/url/init(string:)。

index — フレームワークの構造化インデックス全体(ツリー形式の全シンボル)を取得します。

  • apple-docs-pp-cli index <framework> — フレームワークの階層インデックス全体を取得します。オフラインの全文検索同期に便利です。インデックスのサイズは大きく、500KB~2MB です。

technologies — Apple のすべてのフレームワークとテクノロジー(Swift、SwiftUI、UIKit など)を一覧表示します。

  • apple-docs-pp-cli technologies — トピックごとに分類された Apple の全フレームワークを含む、テクノロジーのマスターインデックスを取得します。

鮮度の契約

この CLI が出力するデータの鮮度を管理するのは、登録済みのストアを使用する読み取りコマンドのパスに限られます。--data-source auto モードでは、それらのパスは sync_state を確認し、ローカルデータを読み取る前に範囲を限定した更新を実行する場合があります。--data-source local では更新されません。--data-source live では API から読み取り、ローカルストアは変更しません。ソース選択を変えずに鮮度チェックをスキップするには、APPLE_DOCS_NO_AUTO_REFRESH=1 を設定します。

対象となるパス:

  • apple-docs-pp-cli technologies
  • apple-docs-pp-cli technologies get
  • apple-docs-pp-cli technologies list
  • apple-docs-pp-cli technologies search

JSON 出力で生成されたプロベナンスエンベロープが使われる場合、鮮度メタデータは meta.freshness に表示されます。これは対象コマンドパスの現在のキャッシュの鮮度を示すものであり、過去のデータがすべてバックフィルされていることや、API 固有の情報が補完されていることを保証するものではありません。

適切なコマンドを見つける

やりたいことは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接尋ねてください。

apple-docs-pp-cli which "<capability in your own words>"

which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックス内で最も一致するコマンドに対応付けます。終了コード 0 は一致する項目が 1 つ以上あることを示し、終了コード 2 は確実に一致する項目がないことを示します。その場合は --help に切り替えるか、より具体的な問い合わせを使用してください。

レシピ

シンボルが iOS に導入されたバージョンを調べる
apple-docs-pp-cli doc get 'swiftui/view/onappear(perform:)' --shape platforms --agent --select platforms[].introducedAt

プラットフォームの利用可能状況マップのみを返します。完全なページの 9KB に対して、500 バイト未満です。

View に準拠する、具体的な SwiftUI 型をすべて列挙する
apple-docs-pp-cli conformance View --framework swiftui --json --select symbol,kind

ローカルの relationshipsSections グラフをたどります。Apple の単一のエンドポイントからは実現できません。

今年の WWDC で SwiftUI に加わった変更を調べる
apple-docs-pp-cli snapshot diff swiftui --from 2025-06-09 --to 2026-05-28 --classify --json

すべての差分を追加/削除/非推奨/名前変更の可能性ありに分類し、1 回の呼び出しで返します。

UIKit シンボルに対応する visionOS の代替を見つける
apple-docs-pp-cli port-to visionOS uikit/uitableview --agent

visionOS で利用可能なシンボルにたどり着くまで、See-Also と Replacement-Of のエッジをたどります。

シンボルのドキュメントをエージェントのコンテキストとしてまとめる
apple-docs-pp-cli bundle 'swiftui/view/onappear(perform:)' --depth 1 --max-tokens 4000

シンボルと深さ 1 の See-Also ページをすべて Markdown 形式でレンダリングし、トークン予算に合わせて切り詰めます。

認証の設定

認証は不要です。https://developer.apple.com/tutorials/data/ 配下の DocC JSON エンドポイントは公開されており、Apple の CDN から配信されています。

apple-docs-pp-cli doctor を実行して、設定を確認してください。

エージェントモード

任意のコマンドに --agent を追加してください。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ可能 — stdout に JSON、stderr にエラーを出力します

  • フィルター可能 — --select でフィールドを絞り込みます。ドット区切りのパスはネストされた構造に進み、配列は各要素をたどります。出力の多い API でコンテキストを小さく保つために重要です。

    apple-docs-pp-cli doc get swiftui/view --agent --select abstract,declaration,platforms
    
  • プレビュー可能 — --dry-run で、リクエストを送信せずに内容を表示します

  • オフラインに対応 — 同期/検索コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、すべての入力はフラグで指定します

  • 読み取り専用 — 作成、更新、削除、公開、コメント、賛成票、招待、注文、送信、その他の変更を伴うリクエストにこの CLI を使用しないでください

レスポンスエンベロープ

ローカルストアまたは API から読み取るコマンドは、出力を出典情報のエンベロープでラップします。

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を、ライブデータかローカルデータかの確認には .meta.source を解析してください。人間向けの N results (live) という概要は、stdout がターミナルであり、かつ機械可読形式のフラグ(--json、--csv、--compact、--quiet、--plain、--select)が設定されていない場合に限り、stderr にのみ出力されます。パイプ/エージェントの利用者と、明示的に形式を指定した実行では、stdout に純粋な JSON が出力されます。

エージェントからのフィードバック

この CLI に問題があることに気づいた場合(エージェントが気づいた場合も含む)は、記録してください。

apple-docs-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
apple-docs-pp-cli feedback --stdin < notes.txt
apple-docs-pp-cli feedback list --json --limit 10

エントリーは ~/.local/share/apple-docs-pp-cli/feedback.jsonl にローカル保存されます。APPLE_DOCS_FEEDBACK_ENDPOINT が設定され、かつ --send が渡されるか APPLE_DOCS_FEEDBACK_AUTO_SEND=true が設定されていない限り、POST されることはありません。既定ではローカルにのみ保存されます。

バグ報告ではなく、意外だったことを書いてください。簡潔で具体的な 1 行にします。積み重なって効果を発揮するのは、その部分です。

出力の配信

すべてのコマンドで --deliver <sink> を使用できます。出力は標準出力に加えて(または標準出力の代わりに)指定したシンクに送られるため、エージェントは手動でパイプをつなぐことなくコマンドの結果を振り分けられます。対応しているシンクは 3 種類です。

シンク動作
stdout既定値。標準出力のみに書き込みます
file:<path>出力を <path> にアトミックに書き込みます(一時ファイル+リネーム)
webhook:<url>出力本文を URL に POST します(--compact の場合は application/json または application/x-ndjson)

不明なスキームは、対応するスキームの一覧を示す構造化エラーとともに拒否されます。Webhook の失敗時は 0 以外の終了コードを返し、URL と HTTP ステータスを stderr に記録します。

名前付きプロファイル

プロファイルとは、保存されたフラグ値のセットで、実行のたびに再利用できます。スケジュールされたエージェントが毎回同じ設定で同じコマンドを呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。

apple-docs-pp-cli profile save briefing --json
apple-docs-pp-cli --profile briefing doc get swiftui/view
apple-docs-pp-cli profile list --json
apple-docs-pp-cli profile show briefing
apple-docs-pp-cli profile delete briefing --yes

明示的に指定したフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルト値より優先されます。agent-context は、使用可能なすべてのプロファイルを available_profiles の下に一覧表示するため、情報を取得するエージェントは実行時にプロファイルを検出できます。

終了コード

コード意味
0成功
2使用方法のエラー(引数が正しくありません)
3リソースが見つかりません
5API エラー(上流の問題)
7レート制限中(待ってから再試行してください)
10設定エラー

引数の解析

$ARGUMENTS を解析します。

  1. 空、help、または --help → apple-docs-pp-cli --help の出力を表示します
  2. install で始まる → mcp で終わる場合 → MCP のインストール。それ以外の場合 → 上記の前提条件を参照します
  3. それ以外 → 直接使用(--agent を指定して CLI コマンドとして実行します)

MCP サーバーのインストール

  1. MCP サーバーをインストールします。
    go install github.com/mvanhorn/printing-press-library/library/developer-tools/apple-docs/cmd/apple-docs-pp-mcp@latest
    
  2. Claude Code に登録します。
    claude mcp add apple-docs-pp-mcp -- apple-docs-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストール済みか確認します:which apple-docs-pp-cli 見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。
  2. ユーザーのクエリに最適なコマンドを、上記の独自の機能とコマンドリファレンスから選びます。
  3. --agent フラグを指定して実行します。
    apple-docs-pp-cli <command> [subcommand] [args] --agent
    
  4. あいまいな場合は、サブコマンドのヘルプを確認します:apple-docs-pp-cli <command> --help。

コメント