diff --git a/AGENTS.md b/AGENTS.md index 98828164..caaa92d0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -67,6 +67,8 @@ python3 .github/scripts/proper_term_check.py # 固有の語の検査 | `containers/base/entrypoint.sh` などイメージに入るファイルを変えた | `devbase up` だけでは反映されない | base を建て直してから確かめる | | base を建てて比べる | base は 1 本で数 GB ある。並べて残すとディスクが埋まり Docker が止まる | 建てる前に `docker system df` を見る。作業用のタグは記録を書いたら消す | | イメージの大きさを受け入れ条件に書く | `docker images` の `.Size` は、containerd のイメージストア(Docker Desktop)では圧縮後、classic のストアでは展開後に近い値を出す。同じ条件が端末で二通りに読める(#402 は 611MB と 1.29GB に分かれた) | 用語集の「展開後の大きさ」(`du -sbx /`)で書き、測った端末とストアを記録に残す | +| ビルドの前後でイメージが変わっていないことを確かめる | containerd のイメージストア(Docker Desktop)では、キャッシュだけで建っても `docker images` の ID が変わることがある(m7e のリリース後テストで `devbase-base:latest` が c6b3549b950d → 7c621a66378d、作成時刻は同じ)。「ID は変わらない」と先に書いて直した。前の ID は手元から消え、比べ直せなかった | 建てる前に `docker image inspect` の `Id` と `Created` を控える。変わっていないことは `Created` で示し、ID が変わったら変わったと書く | +| 通常の経路(`build`・`up` など)に `docker compose` の呼び出しを足す | 足した呼び出しが元の経路より多くの前提を持つと、これまで通っていた利用者の環境で止まる(#415 の `docker compose config` はサービスの `env_file` を読み、`.env` をまだ作っていない初回のビルドで失敗する形だった。直しに使った `--no-env-resolution` は Compose v2.35 より前では未知のオプション。どちらも設計を通り、スプリント m7e の cross-review で major になった) | 設計で、足す呼び出しが読むファイルと要る Compose の版を、元の経路と並べて書く。版で入ったオプションは、退けられたときの扱いを決める | | base から道具を外す前に、使う者を探す | `repos/*/` のプラグインだけを探すと、プロジェクトのコード(`projects/*/repo`)の `.mcp.json`・`package.json` が `npx` などで実行時に使う道具を見落とす(#401 で `chrome-devtools-mcp`・`@playwright/mcp` を承認ゲートで人が見つけた) | `projects/*/repo` も探す範囲に入れ、探した場所と探していない場所を要求に書く | | 非対話のセッション(`claude -p` の担当)で base を建てる | macOS の Docker Desktop がキーチェーンを開けず、`ubuntu` などの取得が `error getting credentials` で止まる(#400 の担当は建てられないまま PR を出した) | 担当は建てられなかったことを「判断が要る」で返す。建てる確認は対話できるセッションか、取得済みのイメージを `docker load` してから行う | | 「base の無い端末」での `devbase build` を確かめる | 手元の `devbase-base:latest` などを消すと利用者の環境を壊す。base を実際に建てると取得がキーチェーンで止まり得る(上の行) | 端末に無い作業用の名前で、最下段を `FROM scratch` にした同じ形の連なり(`containers/<作業用>/`・`projects/<作業用>/`)を `git archive` で展開した一時の root に組み、`env -u DEVBASE_ROOT` で建てる。たどり方は名前に依らない。実の名前での確認は base の無い端末で利用者に頼む(#404 のリリース後テスト、#421 のコメント) |