MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Codexの設定 - SKILLのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Codexの設定 - SKILL
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Agent Skills (以降、Skills) は、OpenAI Codex CLIに特定のタスクを実行するための専門的な手順、コンテキスト、スクリプトをパッケージ化して提供する仕組みである。<br> <br> スキルは <u>SKILL.md</u> ファイルを中心として、オプションの <u>scripts/</u>、<u>references/</u>、<u>assets/</u> ディレクトリを含むフォルダ構成を採用している。<br> <br> スキルの主な目的を以下に示す。<br> * 繰り返しワークフローの再利用 *: プロジェクト固有の手順やチェックリスト等、何度も実行するワークフローをスキルとして定義し、一貫して再利用する。 * 専門知識のパッケージ化 *: ドメイン固有の知識や手順をスキルとして文書化し、Codexが確実に追えるようにする。 * チーム標準の統一 *: チーム全体で同じスキルを共有することにより、作業手順の標準化を実現する。 <br> Skillsは、Anthropicが起源となったオープン標準であるSKILL.md形式を採用しており、Claude Code、Gemini CLI、GitHub Copilot、Windsurf、Cline等、25を超えるツールで互換動作する。<br> Codex 用に作成したスキルは、他の対応ツールのスキルディレクトリにコピーするだけでそのまま利用できる。<br> <br><br> == 設計哲学 == ==== 単一責任の原則 ==== スキルの設計において最も重要な原則は、1つのスキルに1つの仕事のみを担わせることである。<br> <br> 汎用的なスキルを1つ作るよりも、明確に絞り込んだスキルを複数作る方が望ましい。<br> <br> 具体的なユースケースの例を以下に示す。<br> * 推奨構成の例 *: <code>code-review</code>、<code>test-generation</code>、<code>pr-checklist</code> の3つのスキルに分割する。 * 非推奨構成の例 *: <code>development-tools</code> という汎用的な1つのスキルにまとめる。 <br> 新しくスキルを作成する際は、具体的なユースケースを2から3個程度から始めることを推奨する。<br> その後、実際の運用経験を経てエッジケースを追加対応していく方が、最初から網羅的に設計するよりも実用的なスキルになる。<br> <br> ==== 段階的公開 (Progressive Disclosure) ==== Codexはコンテキストウィンドウの効率的な利用のため、スキルの情報を2段階で読み込む設計を採用している。<br> <br> * 第1段階 (常時ロード) *: フロントマターの <code>name</code> と <code>description</code> のみをシステムプロンプトに追加する。 *: この段階では本文は読み込まれない。 * 第2段階 (トリガー時のみ) *: Codexがスキルを使用すると判断した時点で、初めて <u>SKILL.md</u> 本文とバンドルリソースを読み込む。 <br> この設計により、多数のスキルをインストールしている場合でも、コンテキストウィンドウを効率的に使用できる。<br> <br> 常時ロードされるスキルリストの初期サイズはモデルのコンテキストウィンドウの約2[%]、またはコンテキストウィンドウが不明な場合は8,000文字を上限とする。<br> <br> スキル数が多い場合は <code>description</code> が短縮されることがあり、スキル数が極端に多い場合はリストから一部が省略され警告が表示される。<br> <br><br> == ファイル構造 == スキルは、以下に示すディレクトリ構造を持つフォルダとして管理する。<br> <br> skill-folder/ ├── SKILL.md # 必須: フロントマター + 本文指示 ├── scripts/ # オプション: CLIスクリプト (bash / python / javascript) ├── references/ # オプション: 詳細ドキュメント、仕様書、APIリファレンス ├── assets/ # オプション: テンプレート、設定ファイル、アイコン等 └── agents/ └── openai.yaml # オプション: Codex App UI設定とMCP依存宣言 <br> 各ファイル・ディレクトリの役割を以下に示す。<br> * <u>SKILL.md</u> *: 必須ファイル *: YAMLフロントマターとMarkdown本文で構成される。 *: <br> * <u>scripts/</u> *: 決定論的な動作が必要な処理をスクリプトとして格納する。 *: validation、変換、解析等、Codexへの指示だけでは再現性が確保しにくい処理に使用する。 *: <br> * <u>references/</u> *: 詳細な仕様書、API定義、例示ドキュメント等を格納する。 *: SKILL.md本文を簡潔に保ちながら、詳細情報はここに集約する。 *: <br> * <u>assets/</u> *: スキルが生成・使用するテンプレートや静的リソースを格納する。 *: <br> * <u>agents/openai.yaml</u> *: Codex App向けのUI設定、暗黙的呼び出しポリシー、MCP依存宣言を定義する。 <br><br> == 配置場所 == スキルは、以下に示す4つのスコープのいずれかに配置する。<br> <br> <center> {| class="wikitable" |+ スキルの配置スコープ一覧 ! スコープ !! パス !! 用途 |- | リポジトリ (プロジェクト固有) || <u>.agents/skills/</u> (カレントディレクトリまたはリポジトリルート) || 特定プロジェクト内でのみ使用するスキル<br>チームで共有する場合はリポジトリにコミットする。 |- | リポジトリ (組織全体) || <u><repo>/.agents/skills/</u> || リポジトリ全体に適用するスキル<br>複数サブディレクトリから共通利用する場合に配置する。 |- | ユーザ個人 || <u>$HOME/.agents/skills/</u> || 全プロジェクトで個人的に使用するスキル<br>自分だけが使う汎用スキルを配置する。 |- | システム全体 || <u>/etc/codex/skills/</u> || システム上の全ユーザに共通するスキル<br>管理者が配置する。 |} </center> <br> ロード順序については、プロジェクトレベルのスキルがユーザレベルのスキルよりも優先される。<br> 同じ <code>name</code> を持つスキルが複数存在する場合、Codexはマージせずにどちらもスキルセレクタに表示する。<br> <br> なお、Codexはスキルフォルダを <u>.agents/skills/</u> と <u>.codex/skills/</u> の両方から自動的に検出する。<br> <br><br> == SKILL.mdフォーマット == ==== Frontmatter (YAML) ==== <u>SKILL.md</u> ファイルは、YAMLフロントマターとMarkdown本文で構成される。<br> <br> 下表に、フロントマターで設定できる全フィールドを示す。<br> <br> <center> {| class="wikitable" |+ SKILL.md フロントマターフィールド一覧 ! フィールド !! 必須/任意 !! 説明 |- | <code>name</code> || 必須 || スキルの識別子<br>64文字以下、小文字・数字・ハイフンのみ使用可能<br>フォルダ名と一致させる必要がある。省略した場合はフォルダ名が使用される。 |- | <code>description</code> || 必須 || スキルの説明<br>暗黙的呼び出しのトリガー条件として機能する。<br>何をするか・いつ使うかの両方を記述する。 |- | <code>when_to_use</code> || 任意 || 明示的なトリガー条件のリスト<br>「Use when...」「Don't use when...」の形式で記述する。 |- | <code>argument-hint</code> || 任意 || スラッシュコマンド呼び出し時にユーザへ表示するプレースホルダーテキスト<br>例: <code>[issue-number]</code> |- | <code>arguments</code> || 任意 || スラッシュコマンド呼び出し時の構造化された引数スキーマ定義 |- | <code>allowed-tools</code> || 任意 || スキル実行時に事前承認するツールのホワイトリスト<br>例: <code>Bash(git:*)</code>、<code>Read</code>、<code>Write</code><br>ツールを制限するものではなく、事前承認するものであることに注意する。 |- | <code>disable-model-invocation</code> || 任意 || <code>true</code> に設定すると、<br>Codexがdescriptionに基づいてスキルを自動選択しなくなる。<br>明示的呼び出しのみが有効になる。 |- | <code>paths</code> || 任意 || スキルが対象とするファイルのglobパターン<br>例: <code>["package.json", "**/.env", "**/Dockerfile"]</code> |- | <code>model</code> || 任意 || スキル実行時に使用するモデルを上書き指定する。 |- | <code>effort</code> || 任意 || 拡張思考の努力レベルヒント<br><code>low</code>、<code>medium</code>、<code>high</code> のいずれかを指定する。 |} </center> <br> フロントマターの記述上の注意事項を以下に示す。<br> * YAMLではタブが使用できない。<br>インデントは必ずスペースで記述する。 *: タブを使用するとパースエラーとなる。 * フロントマターブロックは、<code>---</code> のみの行で開始・終了する必要がある。 * <code>user-invocable: false</code> と <code>disable-model-invocation: true</code> を同時に設定すると、スキルへのアクセスが完全に遮断される。 <br> ==== 本文 (Markdown) ==== フロントマターの後にMarkdown形式でスキルの実行手順を記述する。<br> <br> 本文の記述方針を以下に示す。<br> * 実行手順は命令形で記述する。 *: 「読み込む」「確認する」「実行する」のように、Codexへの指示として明確に記述する。 *: <br> * 「When to Use This Skill」セクションを本文に記述しない。 *: 本文はトリガー後にのみ読み込まれるため、トリガー条件の説明はフロントマターの <code>description</code> に記述する。 *: <br> * <u>scripts/</u>、<u>references/</u>、<u>assets/</u> へのリンクで本文を簡潔に保つ。 *: 詳細情報は各ディレクトリに格納し、本文からパスで参照する。 *: <br> * コンテキストウィンドウは公共財である。 *: 不要な説明を避け、実行可能なコンテンツに集中する。 <br><br> == descriptionの記述 == <code>description</code> フィールドはスキルの暗黙的呼び出しにおける主要なトリガーメカニズムである。<br> この記述の質が、triggering reliability (呼び出し精度) に直結する。<br> <br> <code>description</code> には以下の2つを必ず含める。<br> * 何をするか *: スキルが実行する具体的なタスクの説明 * いつ使うか *: どのようなプロンプトや状況でスキルが呼び出されるべきかのトリガー条件 <br> 良い例と悪い例を以下に示す。<br> <br> <center> {| class="wikitable" |+ descriptionの良い例と悪い例 ! 評価 !! 記述例 !! 問題点 |- | 良い例 || <u>Performs code reviews for staged git changes,</u> <u>focusing on security vulnerabilities,</u> <u>logic errors, and style issues.</u> <u>Use when asked to review code, check for issues before a pull request,</u> <u>or audit recent changes.</u> | 何をするかと、いつ使うかの両方を明確に記述している。 |- | 悪い例 || <u>A code review tool.</u> || 何をするかしか分からない。<br>トリガー条件が不明確のため、自動選択されにくい。 |- | 良い例 || <u>Runs the full test suite and summarizes failing tests with suggested fixes.</u> <u>Use when running tests, debugging test failures,</u> <u>or checking test coverage.</u> | 動作とトリガー条件がともに具体的である。 |- | 悪い例 || <u>Test runner skill.</u> || 抽象的すぎて自動選択されない。 |} </center> <br> <u>また、段階的公開の仕組みにより、スキルリストが大量になった場合は <code>description</code> が短縮される。</u><br> <u>重要なキーワードとトリガーワードをできるだけ文頭に配置することにより、短縮された場合でも適切に機能する記述を心がける。</u><br> <br><br> == スキルの呼び出し方法 == ==== 明示的呼び出し ==== ユーザがスキルを直接指定して実行する方法である。<br> <br> Codex CLI および IDEでは、以下のいずれかの方法でスキルを明示的に呼び出す。<br> <br> codex /<スキル名> <br> またはプロンプト中で <code>$</code> を使用してスキルをメンションする方法もある。<br> <br> $<スキル名> を使って依存ライブラリの脆弱性をチェックして <br> <code>disable-model-invocation: true</code> を設定したスキルは、明示的呼び出しのみが有効となる。<br> <br> ==== 暗黙的呼び出し ==== ユーザのプロンプトが <code>description</code> フィールドの内容と一致すると判断された場合に、Codexがスキルを自動的に選択して実行する。<br> <br> ユーザはスキルの名前を知らなくても、自然言語でタスクを依頼するだけで適切なスキルが自動実行される。<br> <br> 暗黙的呼び出しの例を以下に示す。<br> * ユーザのプロンプト *: 「このPRのコードを確認してほしい」 * Codexの動作 *: <code>description</code> に "Use when asked to review code... before a pull request" と記述された <code>code-review</code> スキルを自動選択して実行する。 <br> <u>agents/openai.yaml</u> で <code>allow_implicit_invocation: false</code> を設定したスキルは、暗黙的呼び出しが無効となり明示的呼び出しのみが有効になる。<br> <br><br> == scripts/ディレクトリの活用 == スキルの動作は原則としてMarkdown本文への指示で実現するが、決定論的な動作が必要な処理はスクリプトとして <u>scripts/</u> ディレクトリに格納する。<br> <br> スクリプトを使用すべきケースを以下に示す。<br> * validation (入力値の検証) *: 特定の形式に合っているかを確認する処理 *: <br> * 変換 *: ファイル形式の変換や構造の変換等 *: <br> * 解析 *: ログ解析、依存関係の抽出等 <br> 利用可能な言語は、bash、python、javascript (Node.js) 等である。<br> <br> SKILL.md本文からスクリプトを参照する例を以下に示す。<br> <br> <syntaxhighlight lang="md"> ## 実行手順 1. `scripts/validate-input.sh` を実行して入力値を検証する。 2. 検証に失敗した場合は、エラーメッセージを表示して処理を中断する。 3. 検証に成功した場合は、`scripts/transform.py` を実行してファイルを変換する。 </syntaxhighlight> <br><br> == MCP統合 == ==== agents/openai.yamlによる依存宣言 ==== スキルがMCPサーバを必要とする場合、<u>agents/openai.yaml</u> の <code>dependencies</code> セクションにMCPサーバを宣言する。<br> <br> この宣言により、Codexはスキル使用時に必要なMCPサーバが利用可能かどうかを確認し、適切に接続できる。<br> <br> <u>agents/openai.yaml</u> のサンプルを以下に示す。<br> <br> <syntaxhighlight lang="yaml"> interface: display_name: "OpenAI Docs Search" short_description: "OpenAI開発者ドキュメントを検索する" icon_small: "./assets/small-logo.svg" icon_large: "./assets/large-logo.png" brand_color: "#3B82F6" default_prompt: "OpenAIドキュメントを参照しながら回答してください" policy: allow_implicit_invocation: false dependencies: tools: - type: "mcp" value: "openaiDeveloperDocs" description: "OpenAI Docs MCP server (streamable HTTP)" transport: "streamable_http" url: "https://developers.openai.com/mcp" - type: "mcp" value: "localFileSystem" description: "Local filesystem MCP server (stdio)" transport: "stdio" command: "mcp-server-filesystem" args: ["--root", "/workspace"] </syntaxhighlight> <br> <code>interface</code> セクションのフィールドを以下に示す。<br> * <code>display_name</code> *: Codex App でユーザに表示される名前 * <code>short_description</code> *: ユーザ向けの短い説明文 * <code>icon_small</code> / <code>icon_large</code> *: アイコン画像ファイルへの相対パス * <code>brand_color</code> *: ブランドカラーの16進数カラーコード * <code>default_prompt</code> *: スキル使用時にデフォルトで付加されるプロンプト <br> <code>policy</code> セクションの <code>allow_implicit_invocation</code> をfalseに設定すると、Codexがプロンプトからスキルを自動選択しなくなる。<br> 明示的な <code>$<スキル名></code> 形式の呼び出しは引き続き有効である。<br> <br> ==== Feature Flagによる自動インストール ==== スキルが <u>agents/openai.yaml</u> でMCP依存を宣言している場合、Codexは不足しているMCP依存を自動的にインストールする機能を持つ。<br> この機能はデフォルトで有効となっている。<br> <br> スキルをリポジトリにコミットすることで、チームメンバー全員がスキルを使用する際に必要なMCPサーバが自動的にセットアップされる。<br> <br><br> == config.tomlでのスキル設定 == スキルを削除せずに無効化する場合は、<u>~/.codex/config.toml</u> に <code>[[skills.config]]</code> エントリを追加する。<br> <br> <syntaxhighlight lang="toml"> [[skills.config]] path = "/home/user/.agents/skills/my-skill/SKILL.md" enabled = false [[skills.config]] path = "/path/to/project/.agents/skills/log-triage/SKILL.md" enabled = false </syntaxhighlight> <br> 設定を変更した後は、Codexを再起動して反映させる。<br> <br> スキルのロード順序については、プロジェクトレベル (<u>.agents/skills/</u>) のスキルがユーザレベル (<u>$HOME/.agents/skills/</u>) のスキルよりも優先される。<br> 同一名のスキルが存在する場合はマージされず、両方がスキルセレクタに列挙される。<br> <br><br> == SKILL.mdサンプル == ==== 最小限のサンプル ==== 以下に最小限の構成のSKILL.mdサンプルを示す。<br> <br> ログファイルを解析してトリアージレポートを生成するスキルの例である。<br> <br> <syntaxhighlight lang="md"> --- name: log-triage description: Analyzes application log files to identify root causes, key errors, and suggests next debugging steps. Use when asked to analyze logs, debug errors, or investigate application issues. --- # Log Triage Analyze the provided log content and produce a triage report. ## Steps 1. Scan the log for ERROR, WARN, and FATAL level entries. 2. Identify the most frequent and critical errors. 3. Determine the likely root cause based on error context and timestamps. 4. Suggest the next three concrete debugging steps. ## Output Format - Root cause summary (1-2 sentences) - Top 3 errors with line references - Next debugging steps (numbered list) </syntaxhighlight> <br> ==== 詳細なサンプル ==== 以下に詳細な構成のSKILL.mdサンプルを示す。<br> <br> PRレビューチェックリストを実行するスキルの例であり、allowed-tools、arguments、スクリプト参照を活用している。<br> <br> <syntaxhighlight lang="md"> --- name: pr-review-checklist description: Runs a comprehensive pull request review checklist covering security, logic correctness, test coverage, and code style. Use when asked to review a PR, check a pull request, or audit staged changes before merging. argument-hint: "[branch-name or PR number]" allowed-tools: - Bash(git:*) - Read - Grep effort: medium --- # PR Review Checklist Run a comprehensive review of the specified pull request or branch. ## Steps 1. Execute `scripts/fetch-diff.sh` to retrieve the diff for the target branch or PR. 2. Review the diff for the following concerns: - Security vulnerabilities (injection, authentication, sensitive data exposure) - Logic errors and edge cases - Missing or insufficient test coverage - Code style and naming conventions 3. Consult `references/review-guidelines.md` for project-specific standards. 4. Produce a structured review report. ## Output Format - Summary of changes - Issues found (grouped by severity: Critical / Major / Minor) - Suggested improvements - Pass / Fail verdict </syntaxhighlight> <br><br> == agents/openai.yamlサンプル == 以下に <u>agents/openai.yaml</u> のサンプルを示す。<br> <br> <syntaxhighlight lang="yaml"> interface: display_name: "PR Review Assistant" short_description: "プルリクエストの包括的なレビューを実行する" icon_small: "./assets/icon-small.svg" icon_large: "./assets/icon-large.png" brand_color: "#0EA5E9" default_prompt: "以下のPRを包括的にレビューしてください" policy: allow_implicit_invocation: true dependencies: tools: - type: "mcp" value: "githubApi" description: "GitHub REST API MCP server" transport: "streamable_http" url: "https://api.github.com/mcp" - type: "mcp" value: "localShell" description: "Local shell execution MCP server" transport: "stdio" command: "mcp-server-shell" args: ["--allow-git"] </syntaxhighlight> <br> <code>interface</code> セクションはCodex Appでのスキル表示をカスタマイズするためのものであり、CLI環境では無視される。<br> <br><br> == CLI / IDE / Codex App共通動作 == スキルは CLI、IDE拡張機能、Codex Appのいずれの環境でも共通して動作する。<br> <br> 各環境における動作の特徴を以下に示す。<br> * CLI環境 *: <code>/<スキル名></code> または <code>$<スキル名></code> で明示的に呼び出す。 *: <code>description</code> に基づく暗黙的呼び出しも有効である。 *: <br> * IDE拡張機能 *: チャット入力欄で <code>/</code> または <code>$</code> でスキルをメンションできる。 *: <br> * Codex App *: <u>agents/openai.yaml</u> の <code>interface</code> セクションに基づいてスキルが表示される。 *: <code>display_name</code> や <code>icon</code> を設定することにより、視覚的に分かりやすいUIを提供できる。 <br> 全環境において、明示的呼び出しと暗黙的呼び出し (descriptionに基づく自動選択) の両方が共通して動作する。<br> <br><br> == 推奨事項 == ==== 1 skill = 1 job の維持 ==== スキルは単一の明確なタスクに特化させる。<br> 複数のタスクを1つのスキルにまとめると、<code>description</code> が曖昧になり自動選択精度が下がる。<br> <br> ==== 具体的なユースケースから始める ==== まず、2〜3個の具体的なユースケースを想定してスキルを設計する。<br> 実際の利用経験を経てから段階的にエッジケースへの対応を追加する方が、最初から包括的に設計するよりも実用的なスキルになる。<br> <br> ==== descriptionを具体的に記述する ==== <code>description</code> フィールドは何をするかと、いつ使うかの両方を具体的に記述する。<br> 抽象的な説明はトリガー精度を低下させるため、重要なキーワードを文頭に配置することで短縮時でも機能する記述を心がける。<br> <br> ==== SKILL.md本文を簡潔に保つ ==== SKILL.md本文はコンテキストウィンドウを消費する。<br> 詳細情報は、<u>references/</u> や <u>assets/</u> ディレクトリに格納し、本文からパスで参照する方式を採用することで本文を簡潔に維持する。<br> <br> ==== エッジケースは事後対応 ==== スキルの初期設計では主要なユースケースのみをカバーする。<br> エッジケースや例外処理は、実際に問題が発生してから追加する方が効率的である。<br> <br><br> == Skillsとプラグインの関係 == 下表に、スキルとプラグインの役割の違いを示す。<br> <br> <center> {| class="wikitable" |+ Skillsとプラグインの比較 ! 項目 !! Skill !! Plugin |- | 形式 || ディレクトリ + SKILL.md || バンドルされたパッケージ |- | 主な用途 || ローカル開発、リポジトリスコープ、チーム内共有 || 配布、マーケットプレイス公開 |- | 複数スキルの管理 || 個別ディレクトリで独立管理 || 複数のスキルを1パッケージにバンドル |- | アプリ統合 || agents/openai.yaml で個別設定 || アプリマッピングとMCP設定を一括バンドル |- | 配布方法 || ディレクトリコピーまたはリポジトリへのコミット || パッケージマネージャ、マーケットプレイス |} </center> <br> スキルをプラグインとしてパッケージ化する主なケースを以下に示す。<br> * 2つ以上のスキルをバンドルして配布したい場合 * アプリ統合 (MCPサーバ設定等) と一緒に配布したい場合 * マーケットプレイスを通じてコミュニティへ公開したい場合 <br> ローカル開発段階ではスキルフォルダ形式を使用し、再利用可能な形で配布・公開する段階でプラグイン化することを推奨する。<br> <br><br> == 関連ページ == * [[Codexの設定 - AGENTS.md]] * [[Codexの設定 - サブエージェント]] * [[Codexの設定 - MCPサーバ]] * [[Codexの設定 - コマンド]] <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:設定]]
Codexの設定 - SKILL
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse