Priority
HIGH
背景
Claude Code Issue #11271 で「confused state で環境変数露出」、Knostic は Claude Code / Cursor で `.env` / credentials を誤って読み書きする事例を複数報告。dotclaude グローバルハーネス側では `settings.json` の `sandbox.filesystem.denyRead` で `/.aws`, `/.ssh`, `~/.config/gcloud`, `.env*`, `terraform.tfstate*` を保護済みだが、autoforge 側でも二重防御として path allowlist / denylist を設けるべき。他環境(dotclaude 未導入の CI、共同開発者)での安全性確保にも必要。
現状(未検証 — 実装着手前に要確認)
- `autoforge/harness/tools/edit.py` / `view.py` 相当の実装 未検証
- 未検証: autoforge 単独実行時(dotclaude の sandbox 保護なし)の挙動
- dotclaude 側保護: `~/.claude/settings.json` で `denyRead` 設定済み
提案
- `autoforge.yml` に `security.path_denylist` を新設: `.env*`, `/credentials*.json`, `/.aws/`, `/.ssh/`, `/id_rsa*`, `terraform.tfstate*`
- `edit` / `view` / `search` 実行前にパスを検査、一致したらエラー
- プロジェクトルート外への path traversal を阻止(`Path.resolve()` 後にルート配下チェック)
- `--unsafe-paths` で明示オーバーライド可(警告付き、テスト用)
完了条件
参考
Part of #17
Priority
HIGH
背景
Claude Code Issue #11271 で「confused state で環境変数露出」、Knostic は Claude Code / Cursor で `.env` / credentials を誤って読み書きする事例を複数報告。dotclaude グローバルハーネス側では `settings.json` の `sandbox.filesystem.denyRead` で `
/.aws`, `/.ssh`, `~/.config/gcloud`, `.env*`, `terraform.tfstate*` を保護済みだが、autoforge 側でも二重防御として path allowlist / denylist を設けるべき。他環境(dotclaude 未導入の CI、共同開発者)での安全性確保にも必要。現状(未検証 — 実装着手前に要確認)
提案
完了条件
参考
Part of #17