Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'
init-devcontainer
devcontainer環境を構築する設定ファイルを生成する。Triggers on: '/init-devcontainer', 'devcontainerを設定', 'devcontainer環境を作って'
インストール方法を見る含まれるファイル(1)
- SKILL.md5.6 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
devcontainer 環境構築
プロジェクトを分析し、Claude Code をサンドボックス環境で安全に実行するための devcontainer 設定ファイルを生成します。
手順
1. 既存設定の確認
.devcontainer/ ディレクトリが既に存在する場合はユーザーに上書き・マージ・中止を確認する。
2. プロジェクト情報の検出
言語・パッケージマネージャを検出し、適切なベースイメージと features を決定する。
| 検出結果 | ベースイメージ | 追加 features |
|---|---|---|
| Node.js | mcr.microsoft.com/devcontainers/base | ghcr.io/devcontainers/features/node |
| Python | mcr.microsoft.com/devcontainers/python | - |
| Go | mcr.microsoft.com/devcontainers/go | - |
| Rust | mcr.microsoft.com/devcontainers/rust | - |
| 不明 | mcr.microsoft.com/devcontainers/base | - |
さらに、以下を確認してプロジェクトのパッケージ管理外でインストールが必要なシステムツールを探索する。
README.mdのセットアップ手順Makefile/scripts/内のセットアップ系スクリプト.github/workflows/のCI設定(apt install、brew install、curl ... | shなどのパターン)docs/内のセットアップガイド
検出したツールは postCreateCommand でのインストールコマンドに含める。
3. 設定ファイルの生成
以下のファイルを生成する。
.devcontainer/devcontainer.json
以下の要件を満たす内容で生成する。最新の devcontainer 仕様に従い、実際のスキーマに合わせて適切なフォーマットで記述すること。
| 設定項目 | 内容 |
|---|---|
| コンテナ名 | {プロジェクト名} Sandbox |
| ベースイメージ | 手順2で検出したイメージ |
| features | git、および言語に応じた feature |
| postCreateCommand | Claude Code のインストール + /workspace/.devcontainer/claude-settings.json を ~/.claude/settings.json にコピー + 手順2で検出したシステムツールのインストール |
| マウント | ローカルワークスペースを /workspace にバインド |
| workspaceFolder | /workspace |
| 環境変数 | ANTHROPIC_API_KEY をローカル環境から引き継ぐ |
.devcontainer/claude-settings.json
コンテナ内の Claude Code に決定論的な安全ゲートとして permissions.deny を設定する。/init-project と同じ最小限のベース(ブラスト半径が広く取り返しのつかない操作)を含める。
<!-- 正本: docs/plugin-path-conventions.md -->スクリプトの所在(重要): 本スキルはプラグインとして配布されるため、参照するファイルはユーザーのプロジェクトroot ではなく、プラグイン配下にある。読み込む際は必ず
cat "${CLAUDE_PLUGIN_ROOT}/skills/init-project/scripts/base-deny.json"(引用符必須)の形式で参照し、相対パスskills/init-project/scripts/base-deny.jsonでは呼び出さないこと(${CLAUDE_PLUGIN_ROOT}は表記上のプレースホルダであり環境変数ではない。実行前に、スキル起動時の「Base directory for this skill」から解決したプラグインルートの絶対パスに置換して実行する)。
ベース deny の正本は ${CLAUDE_PLUGIN_ROOT}/skills/init-project/scripts/base-deny.json(JSON配列。init-project の generate-settings.sh が参照するものと同一ファイル)。このファイルを読み込み、{"permissions": {"deny": <配列の内容>}} の形に埋め込んで .devcontainer/claude-settings.json を生成する(例: jq -n --argjson deny "$(cat "${CLAUDE_PLUGIN_ROOT}/skills/init-project/scripts/base-deny.json")" '{permissions: {deny: $deny}}')。
プロジェクト固有の破壊的操作は
permissions.denyに追記してください(例:Bash(terraform destroy:*))。コマンドの文脈的な安全判断は Claude Code ネイティブの auto-mode が担うため、独自のコマンドブロックスクリプトは設定しない。
4. ネットワーク制御の確認(オプション)
外部ネットワークを遮断したい場合は .devcontainer/docker-compose.yml も生成するか確認する。
services:
sandbox:
image: {ベースイメージ}
volumes:
- ../:/workspace:cached
networks:
- sandbox-net
networks:
sandbox-net:
driver: bridge
internal: true
注意:
internal: trueは外部通信を全て遮断する。postCreateCommandでのパッケージインストールが失敗するため、必要なものは事前にイメージに含めること。
5. 完了報告
## devcontainer 環境構築 完了
- 生成ファイル:
- `.devcontainer/devcontainer.json`
- `.devcontainer/claude-settings.json`
次のステップ:
- VS Code: "Reopen in Container" でコンテナを起動
- CLI: `devcontainer up --workspace-folder . && devcontainer exec --workspace-folder . claude`(セッション内で auto-mode を有効化)
- プロジェクト固有のdenyルールは `.devcontainer/claude-settings.json` の `permissions.deny` に追記してください
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
調査(read-only)または雑務(workspace-write)をCodexへ委譲し、結論をJSONで受け取る。Triggers on: '/codex-task', 'Codexで調べて', 'Codexにやらせて', 'Codexへ委譲'
Conventional Commits形式でコミットする。Triggers on: '/commit', 'コミットして', 'commit changes'
恒常的な設計決定を ADR として記録する(退役する機能仕様から ADR 昇格の要否を判定するモードを併せ持つ)。定常フローの必須ステップではなく、必要時に呼ぶ。Triggers on: '/create-adr', 'ADRを書いて', '設計判断を記録', 'ADR昇格を判定'
仕様(チケットの完了条件・受入基準)からE2Eテストを実装する(非対話)。Triggers on: '/create-e2e', 'E2Eテストを書いて', 'E2Eテストを追加して'
機能仕様ドキュメントから要件チケットを作成する、または親要件チケットを実装チケット群に分解する。Triggers on: '/create-ticket', 'チケットを作成', 'Issueを作って', 'create ticket', '実装チケットに分解'