# instinct: venvのpython3がシンボリックリンクの場合sys.executableで判定するとvenv検出が失敗する

## 根本原因
shadow環境の `venv/bin/python3` が `/usr/bin/python3` のシンボリックリンクだった。
`Path(sys.executable).resolve()` で比較すると同じパスになり、
`_ensure_venv()` が「既にvenv内」と誤判定してvenvで再実行されない。
結果として `/usr/bin/python3` で起動し、venv専用ライブラリ(python-dotenv等)が ImportError。

## ポイント
- `sys.executable` ではなく `sys.prefix` vs `venv_dir` で比較する(venvに居るかを直接判定)
- シンボリックリンクは `resolve()` で解決してしまうと本来の参照先を失う
- shadow等のシンボリックリンクが多い環境では特に注意
- `pm2` の ecosystem.config.js で venv の python を絶対パス指定にするとこの問題を回避できる

## 関連Issue
- vvv-bots#57 / vvv-bots PR#59