# Transable 教材連携 — マニフェスト（transable-app.manifest.json）

| 項目 | 内容 |
|------|------|
| **公開 HTML 解説** | https://www.transable.net/guide/external-apps/manifest （本番ホストに従う） |
| **ファイル名** | `transable-app.manifest.json`（固定） |
| **置き場** | アプリの起動 URL と同じディレクトリ |
| **読者** | 人間 · LLM / コーディングエージェント |
| **関連（実装全体）** | [transable-external-apps-app-developer.md](./transable-external-apps-app-developer.md) |

## これは何か

教材連携（External Learning / 外部学習アプリ連携）で、あなたの Web アプリを Transable に登録するときに読む **表示・識別用の JSON** です。アプリの「名刺」です。問題文や HTML 本体ではありません。

検索・質問で使われやすい語:

- `transable-app.manifest.json`
- Transable マニフェスト / 教材連携 マニフェスト
- Transable app manifest / External Learning display profile

## なぜ必要か

公開 URL だけでは、カタログに出す名前と、学習記録をどのアプリに結びつけるかが決まりません。マニフェストがあると、マイページの「自分の教材」と Lab の一覧に、作者が付けた名前で出せます。

ログイン・名簿・学習記録の保存は Transable 側です。マニフェストにメールや名簿を書かないでください。

## 置き場

例:

- アプリ: `https://example.chatgpt.site/`
- マニフェスト: `https://example.chatgpt.site/transable-app.manifest.json`

ブラウザでマニフェスト URL を開き、JSON が見えれば置き場は正しいです。https 必須です（開発用 localhost を除く）。

## 最小例（schema_version 1）

最初は **1** で十分です。

```json
{
  "schema_version": 1,
  "provider_key": "my-writing-demo",
  "name": "経験から書く英作文",
  "activity_title": "経験から、将来の夢を書く",
  "description": "問いかけを通して経験を英語にし、取り組みをTransableに残します。",
  "locale": "ja",
  "author": { "display_name": "山田" }
}
```

| フィールド | 必須 | 注意 |
|------------|------|------|
| `schema_version` | ✅ | `1` または `2` |
| `provider_key` | ✅ | 英小文字・数字・ハイフン。イベントの `provider` と同じ |
| `name` | ✅ | 短いアプリ名 |
| `activity_title` | ✅ | 何をするかの見出し |
| `description` | ✅ | HTML 不可 · 目安 200 字以内 |
| `locale` | 推奨 | 例: `ja` |
| `author.display_name` | 任意 | |
| `thumbnail_url` | 任意 | https の画像。無くてよい |

**使えない `provider_key`（運営予約）:** `picks` · `english-word-order` · `claude-word-order-quiz` · `experience-writing`

## schema_version 2（任意）

v2 では次が追加で必要です。迷ったら v1 のままにしてください。

- `capability.event_types`（送る学習イベントの一覧）
- `data_declaration.may_include_response`（boolean）
- `data_declaration.may_include_canonical_answer`（boolean）
- `data_declaration.claims_high_stakes_grade`（boolean · 通常は `false`）

## 登録の流れ

1. アプリを https で公開する  
2. 同じ場所に `transable-app.manifest.json` を置く  
3. Transable マイページ → 教材連携 → 自分の教材 で公開 URL を登録する  
4. Lab で開き、練習すると「自分の記録」に残る  

Bridge（postMessage）やイベント契約の実装正本は、同ディレクトリの `transable-external-apps-app-developer.md` です。
