---
name: fetch-miro
description: >
  Miro ボード上のオブジェクト（カード・スティッキーノート・フレームなど）のコンテンツを
  Miro MCP で取得し、構造化・解釈してコンソールに提示するスキル。
  以下のような場面で積極的に使うこと：
  ユーザーが「Miro の内容を取得したい」「Miro のボードを読み込みたい」「Miro から仕様を読み取りたい」
  「Miro のカードを解釈して」「/fetch-miro」と言ったとき。
  他のスキル（/create-issue-from-miro など）から呼び出される場合も同様に発火すること。
  Miro の URL が貼られて「これを読んで」と言われた場合も、このスキルを使うこと。
---

# fetch-miro ワークフロー

Miro ボード上のリファインメント結果・仕様・タスク内容などを取得し、
構造化された形でユーザーに提示する。取得と解釈に専念し、Issue 作成やファイル書き出しは行わない。

## ステップ 1 — URL を確認する

**引数ありで呼ばれた場合**（例：`/fetch-miro https://miro.com/app/board/xxxxx/`）
→ その URL を使う。

**引数なしで呼ばれた場合**
→「取得したい Miro オブジェクトの URL を教えてください。」と聞き返す。

URL から Board ID と Widget ID（存在する場合）を抽出しておく。
Miro URL の典型的な形式：
- ボード全体：`https://miro.com/app/board/<board_id>/`
- 特定オブジェクト：`https://miro.com/app/board/<board_id>/?moveToWidget=<widget_id>`

## ステップ 2 — Miro MCP の利用可能性を確認する

Miro MCP が利用可能かどうかを確認する。
利用可能かどうかは、セッション開始時に `mcp__miro__*` 形式のツールが存在するかで判断できる。

**Miro MCP が使えない場合**は、その旨をユーザーに伝えて作業を止める。
> 「Miro MCP が利用できないため、コンテンツを取得できません。
>  Miro MCP の設定については管理者に確認してください。」

## ステップ 3 — コンテンツを取得する

Miro MCP のツールを使って、URL に対応するオブジェクトのコンテンツを取得する。

取得対象の優先順位：
1. Widget ID が URL に含まれる場合 → そのオブジェクト単体を取得
2. Widget ID がない場合 → ボード上のオブジェクト一覧を取得し、
   関連しそうなフレーム・カード・スティッキーノートを絞り込む

取得できる情報の例：テキスト内容、タイトル、タグ、色、作成日時など。

## ステップ 4 — コンテンツを解釈・構造化する

取得したコンテンツは形式が不統一であることを前提に解釈する。
（タイトルのみ・自由記述・スティッキーノートの断片・箇条書きなど、様々な形式が混在する）

以下の 5 つのカテゴリに分類・解釈する：

| カテゴリ | 解釈の指針 |
|---|---|
| 背景 / Context | なぜこのタスクが必要か。課題・背景・きっかけ。 |
| ゴール / Goal | 実装方法ではなく、完了後に達成されるべき状態。 |
| 受け入れ基準 / Acceptance Criteria | 「完了」と判断できる具体的な条件。チェックボックス形式が望ましい。 |
| スコープ外 / Out of Scope | やらないこと、変更してはいけないもの。 |
| その他 | 上記に分類できなかった補足情報。 |

**解釈の進め方**：
- 内容から推察できる場合は、推察した内容をまとめてユーザーに提示し、
  「以上のように解釈しましたが、合っていますか？」と確認する。YES なら次へ進む。
- 推察できないフィールドがある場合はユーザーに直接ヒアリングする。
- 解釈に齟齬がある場合は修正して再確認する。

解釈の確認は、フィールドごとではなく**まとめて 1 回**行うのが望ましい。

## ステップ 5 — 構造化した内容を提示する

解釈・確認が完了したら、以下のフォーマットでコンソールに出力する。

---

**📋 Miro コンテンツ解釈結果**

**背景 / Context**
<内容>

**ゴール / Goal**
<内容>

**受け入れ基準 / Acceptance Criteria**
<内容（チェックボックス形式が望ましい）>

**スコープ外 / Out of Scope**
<内容、または「特になし」>

**その他**
<分類できなかった情報があれば記載。なければ省略>

---

Markdown ファイルやその他のファイルへの書き出しは、ユーザーから明示的に指示があった場合のみ行う。

## 制約

- **この SKILL は取得と解釈のみを行う**。Issue の作成・コードベースの探索・ブランチ作成・
  ファイルへの自動書き出しは、指示がない限り行わない。
- 解釈に不確かな点があれば作業を止めて確認する。推測で進めない。
- Miro MCP が使えない場合は代替手段（Miro API 直接呼び出し等）を提案せず、
  MCP の設定を促して止まる。
