## 1. 開発環境（言語共通）

確認：2026年9月

| 役割 | 既定 | 代替と乗り換え条件 |
|---|---|---|
| 言語バージョン管理 | **mise**（Node、Go、Ruby、Python、Rust、Terraformを1本で管理。`.mise.toml`をリポジトリに置く） | asdf：既存プロジェクトが使っている場合のみ |
| 環境変数（ローカル） | **mise の `[env]`** | `.env`＋dotenv：mise を使わない人と設定を共有するとき。direnv：mise を使わず、ディレクトリに入るだけで読み込みたいとき |
| ローカルのミドルウェア | **Docker Compose**（Postgres、Redis/Valkey、Mailpit、SeaweedFSなど） | — |
| 開発コンテナ | 使わない（ホスト＋mise で十分） | Dev Containers：チームの環境差異が問題になったとき |
| ローカルのメール確認 | **Mailpit** | （MailHogは開発停止のため選ばない） |
| ローカルのS3互換 | **SeaweedFS**（S3互換APIを持つOSSの分散ストレージ） | RustFS：MinIOに近い操作感が欲しく、採用時点で成熟度を確認できたとき。moto（サーバーモード）：SQS/SNSなどAWSサービスを広くモックしたいとき。MinIOとLocalStackのオープンソース版はリポジトリがアーカイブされたため選ばない |
| Gitフック | **lefthook**（言語非依存・高速・並列実行） | husky：Node単体のリポジトリで慣れている場合 |
| コミット規約 | **Conventional Commits** | — |
| エディタ設定共有 | **.editorconfig** ＋ 各言語のフォーマッタ設定 | — |

### 推奨ディレクトリ直下ファイル（全案件共通）

```
.mise.toml          # 言語・ツールのバージョン
.editorconfig
compose.yaml        # ローカルのミドルウェア
lefthook.yml
.github/workflows/
.github/renovate.json（または renovate.json）
docs/adr/           # 設計判断の記録
README.md
```
