# UniversalMigrator 設計書

| 項目 | 内容 |
|---|---|
| 文書名 | UniversalMigrator 設計書 |
| バージョン | 1.0 |
| 作成日 | 2026-05-12 |
| 対象システム | Python GUI / CLI + Anthropic API |
| 配置 | `docs/設計書.md` / `docs/設計書.xlsx` |

## 1. はじめに

本書は、`UniversalMigrator` の目的、構成、機能、データ、セキュリティ、運用観点を引継ぎ可能な粒度で整理する設計書である。

## 2. システム概要

66 種類の言語間でソースコードを AI 変換する GUI/CLI ツール

### 2.1 利用者

- 移行担当
- 開発者
- レビュー担当

### 2.2 スコープ内

- 多言語ソース変換
- Anthropic Claude API 呼出
- 指数バックオフリトライ
- レジューム
- 出力サニタイズ
- エコシステム変換
- 8言語UI

### 2.3 スコープ外

- 機密コードの無条件外部送信許可
- 生成コードの品質保証
- 実行テスト自動完了

## 3. アーキテクチャ

```mermaid
flowchart LR
  N0["main.py"] --> N1
  N1["src converter"] --> N2
  N2["Anthropic API client"] --> N3
  N3["resume state"] --> N4
  N4["GUI"] --> N5
  N5["CLI"]
```

### 3.1 技術スタック

| 区分 | 採用技術 | 用途 |
|---|---|---|
| Python | requirements.txt | anthropic>=0.40.0 |

### 3.2 主要ファイル

| パス | 役割 |
|---|---|
| `build.bat` | 主要ソース/設定ファイル |
| `build.sh` | 主要ソース/設定ファイル |
| `design_document.xlsx` | 主要ソース/設定ファイル |
| `generate_design_doc.py` | 主要ソース/設定ファイル |
| `main.py` | 主要ソース/設定ファイル |
| `README.md` | 利用方法・概要 |
| `README_EN.md` | 利用方法・概要 |
| `requirements.txt` | 主要ソース/設定ファイル |
| `src/ecosystem.py` | 主要ソース/設定ファイル |
| `src/gui_controller.py` | 主要ソース/設定ファイル |
| `src/gui_model.py` | 主要ソース/設定ファイル |
| `src/gui_view.py` | 主要ソース/設定ファイル |
| `src/i18n.py` | 主要ソース/設定ファイル |
| `src/languages.py` | 主要ソース/設定ファイル |
| `src/migrator.py` | 主要ソース/設定ファイル |
| `src/resume_state.py` | 主要ソース/設定ファイル |
| `src/sanitizer.py` | 主要ソース/設定ファイル |
| `src/__init__.py` | 主要ソース/設定ファイル |

## 4. データ・設定モデル

| データ | 形式 | 説明 |
|---|---|---|
| 入力 | source files | 変換対象ソース |
| 状態 | hash map | 変換済みファイルのハッシュ |
| 出力 | target files | 変換後ソースと関連設定 |

## 5. 機能仕様

| ID | 機能 | 仕様 |
|---|---|---|
| F-01 | 言語選択 | 変換元/変換先言語を GUI/CLI で指定する。 |
| F-02 | AI 変換 | Claude API にコンテキスト付きプロンプトを送り変換結果を取得する。 |
| F-03 | 再開 | SHA-256 で変換済みファイルを管理し中断から再開する。 |
| F-04 | 整形 | Markdown フェンスや説明文を除去してソースとして保存する。 |

## 6. セキュリティ・品質

- API 送信対象は利用者が許可したソースに限定する。
- API キーは環境変数または UI 入力で扱い、ログへ出さない。

## 7. デプロイ・運用

- ANTHROPIC_API_KEY を設定
- python main.py で GUI
- python main.py -i ./src -o ./out -s Python -t Rust

## 8. 既知の制約と今後の拡張

- 自動変換・自動判定を含む機能は、利用者または担当者レビューを前提とする。
- 本番利用前に対象データ、権限、ログ、バックアップ、例外処理を運用環境に合わせて確認する。
- README と実装差分が出た場合は、実装側を正として本書を更新する。

## 付録 A. 改訂履歴

| 版 | 日付 | 内容 |
|---|---|---|
| 1.0 | 2026-05-12 | 初版作成 |
