`pip-audit` の `Fix Versions` 列は**そのパッケージ単体の修正版**を示すだけで、**それを依存する上位フレームワークのバージョン制約を一切考慮しない**。鵜呑みにして上げると本番アプリが import 不能になる。
**具体例(2026-06-09・#248 MCP-015 依存更新)**:
- vvv の脆弱性: `starlette 0.50.0` → pip-audit は `fix 1.0.1` と表示
- 実際に `starlette 1.2.1` を入れたら **`fastapi 0.128.0 requires starlette<0.51.0,>=0.40.0` で衝突**し、`app.main` の import が失敗
- starlette のメジャー更新には **FastAPI 0.128 → 最新(0.136等)へのメジャー更新が連動して必要**(pydantic/SQLAlchemy 互換も再検証)=破壊的変更リスク高・別タスク
**How to apply**:
- 依存更新前に**密結合フレームワークのバージョン制約を確認**: `pip show fastapi | grep Requires` や `requires` で `starlette
- 更新は**検証ループ必須**: 更新→`pip-audit`再監査→`app.main` import→pytest→API起動。壊れたら即ロールバック(本番プロセスは旧依存をメモリ保持で稼働継続するので、再起動前なら無停止で戻せる)
- **依存衝突警告(`yfinance requires curl_cffi<0.14`等)は実機import・実動作で確認**: 警告が出ても実際に動くことが多い(yfinanceはcurl_cffi 0.15でAAPL価格取得成功)。警告=即NGではない
**横展開**: security の MCP venv だけでなく**全サービスvenvを一括pip-audit**すると漏れが見つかる(56件→2件に削減できた)。新規サービス(pay)は依存が新しく0件のことも。
関連: [[instinct-env-permission-drift-664]](同じく全.env/venv一括点検) / [[instinct-python-module-edit-needs-restart]] / [[thinking-model-best-practices]](検証ループ)
---
(migrated from local memory/instinct_pip_audit_framework_constraint.md)