# AGENTS.MD

## 適用範囲
- このファイルはリポジトリ全体に適用する。
- `voicevox-remotion-template` 配下では、`voicevox-remotion-template/AGENTS.MD` も併せて参照する。

## 作業前に読む一次情報
- `readme.md`
- `docker-compose.yml`
- `.devcontainer/devcontainer.json`
- `.devcontainer/docker-compose.yml`
- `voicevox-remotion-template` 配下を変更する場合は、`voicevox-remotion-template/AGENTS.MD` と同ディレクトリ内の README、`package.json`、関連するデータファイルを確認する。

GROWI など外部 wiki のページが指定された場合は、ブラウザ表示だけでなく、利用可能なら MCP/API で本文を取得して一次情報として扱う。

## プロジェクト概要
このリポジトリは、Dev Container 上で Remotion を使った動画制作を行うための作業スペースです。

このリポジトリが担当すること:
- Remotion 制作環境の Dev Container / Docker Compose 設定を管理する。
- `voicevox-remotion-template` に配置された Remotion テンプレートと動画制作データを管理する。
- Codex home のバックアップ手順と保存先を管理する。

このリポジトリが担当しないこと:
- `out/` などのレンダリング済み動画成果物を履歴管理すること。
- `.devcontainer-backup` 配下の認証情報、履歴、セッション情報を公開・共有・コミットすること。
- 外部サービス、外部 wiki、VOICEVOX エンジン本体など、このリポジトリ外の実体を明示依頼なしに変更すること。

## 現在の前提
- ホスト側の作業場所は Windows の `F:\workspace\remotion_project\remotion_docker_devcontainer`。
- Dev Container 内の workspace は `/work`。
- Docker Compose のサービス名は `remotion`。
- 開発用ポートは `127.0.0.1:3000:3000`。
- Remotion の実装本体は `voicevox-remotion-template` 配下にある。
- ルートの `readme.md` は初期セットアップと Remotion preview / build の基本コマンドを記載する。

## 開発ルール
- 既存の未コミット変更がある場合は、作業前に内容を確認し、無関係な変更を巻き戻さない。
- 実装では既存の構成、命名、入口コマンドに従い、不要な抽象化や広範囲なリファクタリングは避ける。
- 仕様が未確定な箇所は一次情報に合わせて保守的に実装し、勝手に機能拡張しない。
- 設計や挙動を変える場合は、必要に応じて `readme.md`、該当ディレクトリの `AGENTS.MD`、関連する設定例も同じ変更で更新する。
- Dev Container や Docker 設定を変更する場合は、ホスト Windows とコンテナ内 `/work` の両方のパス前提を意識する。

## 状態管理 / 成果物 / ログ
- `.devcontainer-backup` は復元用のローカルバックアップ領域として扱い、コミット、公開、共有しない。
- `out/`、ビルド成果物、キャッシュ、ログ、生成途中の中間ファイルは `.gitignore` の方針に従って扱う。
- 動画再現に必要な素材や manifest の扱いは、`voicevox-remotion-template/AGENTS.MD` の指示を優先する。
- 失敗時の調査や再処理に必要なログ・manifest・生成物がある場合は、明示指示なしに削除しない。

## 検証方針
変更時は、変更範囲に応じて最低限以下を確認する。

- ルートの Dev Container / Docker Compose 設定を変更した場合は、設定ファイルの整合性と起動コマンドへの影響を確認する。
- `voicevox-remotion-template` 配下を変更した場合は、可能な範囲で `./node_modules/.bin/tsc --noEmit` と `npm run lint` を実行する。
- 音声、口パク、manifest、素材配置を変更した場合は、同ディレクトリの `AGENTS.MD` に記載された再生成手順と成果物の扱いを確認する。
- 検証できなかった項目がある場合は、理由と残るリスクを作業報告に明記する。

## セキュリティ / 秘密情報
- トークン、鍵、認証情報、セッション情報、非公開設定の具体値をリポジトリ、公開ページ、ログ出力へ直書きしない。
- `.env`、`.env.*`、`.devcontainer-backup` は秘密情報を含む可能性があるものとして扱う。
- 外部 wiki や GROWI へ記録する場合も、秘密値そのものではなく、存在、状態、扱い方のメモにとどめる。

## コミット方針
- コミットメッセージは日本語で記載する。
- コミット件名は、変更の目的が分かる短い日本語にする。
- コミットは、機能・生成物・ドキュメントなど意味のある単位で分ける。
- 一度のセッションやプランに従って複数の意味単位に分かれた変更を行う場合も、意味単位ごとに個別にコミットする。
- 無関係な変更を同じコミットに混ぜない。

## Codex home バックアップ手順
- バックアップ要求があった場合は、`.devcontainer-backup/codex-home` を復元時の正本として扱う。
- 新しいバックアップを作成する前に、既存の `.devcontainer-backup/codex-home` があれば `.devcontainer-backup/codex-home-YYYYMMDD-HHMMSS` の形式でタイムスタンプ付きディレクトリへ退避する。
- 退避後、現在の Codex home である `/root/.codex` を `.devcontainer-backup/codex-home` としてコピーする。
- `.devcontainer-backup` には認証情報、履歴、セッション情報などが含まれる可能性があるため、コミット、公開、共有しない。

## エージェント向け補足
- 存在しないファイルやコマンドを前提にしない。
- GROWI など外部ページの内容は、取得できた本文と更新日時を優先し、推測で補完しない。
- リポジトリ外のファイルや外部依存の変更が必要に見える場合は、明示的な依頼がない限り、このリポジトリ内の変更案にとどめる。
