mcpField
S
search-ios26-docs

search-ios26-docs

github.com/pproenca開発21876 回インストール11 週間前に更新
リポジトリ

search-ios26-docs について

search-ios26-docsは、ローカルのiOS 26 Simulator SDKでAPIを調べる開発者向けのスキルです。キャッシュしたシンボルグラフを検索し、Swiftインターフェース、ヘッダー、apinotesで結果を確認できます。

主な機能

  1. 01SDKシンボルキャッシュの作成と更新
  2. 02シンボルとドキュメントの検索
  3. 03SDKインターフェースで宣言を検証
  4. 04SDKモジュールの検索
  5. 05モジュールと利用可能性による絞り込み

活用シーン

  1. 01iOS 26 APIの存在を確認
  2. 02SwiftUIシンボルの宣言を調査
  3. 03APIの利用可能性とオーバーロードを確認
  4. 04シンボルのSDKモジュールを特定

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill search-ios26-docs

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
agents/
openai.yaml
scripts/
build_cache.py
probe_symbol.py
search_symbols.py
tests/
test_search_symbols_e2e.py

詳細

iOS 26 ドキュメントを検索する

iOS 26 API の参照元には、ローカルの Xcode iPhone Simulator SDK を使用します。現在の SDK で利用できるもの、SwiftUI シンボルの宣言方法、その利用可能性、または iOS 26 API が存在するかどうかについて尋ねられた場合は、ウェブ検索より先にこのスキルを使用してください。

クイックスタート

シンボルグラフのキャッシュをビルドまたは更新します。

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/build_cache.py"

SwiftUI および SwiftUICore のシンボルドキュメントを検索します。

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py glass button style
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py backgroundExtensionEffect --ios26
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py toolbar spacer --module SwiftUI --limit 12

正確な SDK のソーススニペットを添付して、シンボルや概念を調べます。

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/probe_symbol.py" ZoomNavigationTransition --module SwiftUI
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" VNRecognizeTextRequest --module Vision --verify-interfaces --limit 12

検索対象を決める前に、SDK モジュールを調べます。

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" --find-module vision
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py" --list-modules

検索スクリプトは、初回使用時にデフォルトのキャッシュを自動でビルドします。Xcode を変更した場合や検索結果が古いように見える場合は、build_cache.py に --force を指定してください。

ワークフロー

  1. xcrun --sdk iphonesimulator --show-sdk-path でアクティブな SDK を特定します。
  2. 説明文のドキュメント、シンボル名、宣言、利用可能性の検索には scripts/search_symbols.py を使用します。このスクリプトは、ローカル SDK の swift-symbolgraph-extract 出力をキャッシュから読み込みます。
  3. 正確なコンパイラー宣言、オーバーロード、アンダースコア付きシンボル、生成された属性、またはプラットフォームの利用可能性が重要な場合は、--verify-interfaces を追加するか、scripts/probe_symbol.py を使用します。インターフェースの検証では .swiftinterface、ヘッダー、apinotes を検索し、ソーススニペットと診断情報を報告します。
  4. --find-module PATTERN または --list-modules を使用して候補となる SDK モジュールを調べてから、明示的な --module 値を指定して再実行します。
  5. 検索結果はローカル SDK の情報として引用してください。シンボルグラフでシンボルが見つからない場合は、存在しないと結論づける前に、--verify-interfaces の sourceOnlyMatches を確認してください。

インターフェースの調査

Swift インターフェースは API のサーフェスであり、完全なドキュメントではありません。それでも、正確なシグネチャや属性を調べる際の最適な代替手段です。

SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-path)
SWIFTUI="$SDK_PATH/System/Library/Frameworks/SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64-apple-ios-simulator.swiftinterface"
SWIFTUICORE="$SDK_PATH/System/Library/Frameworks/SwiftUICore.framework/Modules/SwiftUICore.swiftmodule/arm64-apple-ios-simulator.swiftinterface"

rg -n "GlassButtonStyle|backgroundExtensionEffect|SpacerSizing" "$SWIFTUI" "$SWIFTUICORE"
sed -n '1200,1235p' "$SWIFTUI"

以下の用途では、インターフェースを grep で検索してください。

  • オーバーロードの一覧とジェネリック制約
  • @available、非推奨、名前変更のメッセージ
  • SDK 内で参照可能な、内部に近いアンダースコア付き宣言
  • シンボルグラフに説明文のドキュメントがない宣言

シンボルグラフのキャッシュ

キャッシュのデフォルトの場所は次のとおりです。

${CODEX_IOS26_DOCS_CACHE:-$HOME/.cache/codex/search-ios26-docs}/<sdk-name>/<target>/<module>/

デフォルトのモジュールは SwiftUI と SwiftUICore です。必要に応じて、ほかのモジュールも追加してください。

python3 "$HOME/.codex/skills/search-ios26-docs/scripts/build_cache.py --module UIKit --module Foundation
python3 "$HOME/.codex/skills/search-ios26-docs/scripts/search_symbols.py safeAreaRegions --module UIKit

便利なオプション:

  • build_cache.py --list は、抽出せずにキャッシュの場所と SDK の詳細を表示します。
  • build_cache.py --force は、選択したモジュールのキャッシュを削除して再ビルドします。
  • search_symbols.py --json は、機械可読形式の結果を出力します。
  • search_symbols.py --verify-interfaces は、表示された結果に一致する .swiftinterface、ヘッダー、または apinotes のスニペットと診断情報を添付します。
  • probe_symbol.py QUERY ... は、ドキュメント全体を含む、検証済みで重複排除されていないシンボルプローブの簡易コマンドです。
  • search_symbols.py --find-module PATTERN は、名前に指定した部分文字列を含む SDK モジュールを一覧表示します。
  • search_symbols.py --list-modules は、ヘルパーから参照できる SDK フレームワークモジュールを一覧表示します。
  • search_symbols.py --kind "Instance Method" は、結果の種類を絞り込みます。
  • search_symbols.py --ios26 は、iOS 26 以降で導入されたシンボルに絞り込みます。
  • search_symbols.py --introduced iOS:26 は、指定した利用可能性のドメインとメジャーバージョンで絞り込みます。
  • search_symbols.py --no-doc は、出力を簡潔にするためドキュメントスニペットを非表示にします。
  • search_symbols.py --no-dedupe は、具体的なレシーバーごとの結果が必要な場合に、重複する拡張結果を保持します。
  • search_symbols.py --source-limit 8 --source-context-lines 6 は、検証済みソーススニペットの範囲を調整します。

テスト

ヘルパースクリプトを変更した後は、エンドツーエンドテストを実行してください。テストでは実際にインストールされた SDK を使用し、シンボルグラフ検索、検証済みソーススニペット、モジュールの検出、明示的なモジュールの詳細検索を検証します。

python3 "$HOME/.codex/skills/search-ios26-docs/tests/test_search_symbols_e2e.py"

解釈ルール

  • シンボルグラフのドキュメントは、生成された推測ではなく、抽出されたローカルの Apple SDK メタデータとして扱ってください。
  • .swiftinterface は、コンパイラーが参照する宣言ソースとして扱ってください。
  • Objective-C に基づくフレームワークでは、ヘッダーと apinotes を第一級のフォールバックソースとして扱ってください。
  • シンボルグラフと検証済みの SDK ソースが食い違う場合は、検証済みの SDK ソースを優先し、不一致を報告してください。
  • Apple Developer の公開ウェブページが、iOS 26 ベータ版や新しい SDK の API を網羅している、または最新であるとは想定しないでください。
  • モジュールのシンボルグラフ抽出に失敗した場合は、$SDK_PATH/System/Library/Frameworks および $SDK_PATH/System/Library/PrivateFrameworks 以下のフレームワークインターフェイスを対象に rg で検索してください。
  • 厳密さが重要な場合は、アクティブな SDK のベース名、ターゲットトリプル、モジュールを報告してください。

コメント