本文へ移動
cccskills
無料GitHub で公開

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.jsmcr.microsoft.com/devcontainers/baseghcr.io/devcontainers/features/node
Pythonmcr.microsoft.com/devcontainers/python-
Gomcr.microsoft.com/devcontainers/go-
Rustmcr.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で検出したイメージ
featuresgit、および言語に応じた feature
postCreateCommandClaude 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 と同じ最小限のベース(ブラスト半径が広く取り返しのつかない操作)を含める。

スクリプトの所在(重要): 本スキルはプラグインとして配布されるため、参照するファイルはユーザーのプロジェクト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」から解決したプラグインルートの絶対パスに置換して実行する)。

<!-- 正本: docs/plugin-path-conventions.md -->

ベース 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` に追記してください

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

codex-review

無料日本語概要

Codexによるread-onlyローカルレビューを実行する。Triggers on: '/codex-review', 'Codexでレビューして', 'クロスモデルレビューして'

masanami/claude-harness52026年10月8日 更新

codex-task

無料日本語概要

調査(read-only)または雑務(workspace-write)をCodexへ委譲し、結論をJSONで受け取る。Triggers on: '/codex-task', 'Codexで調べて', 'Codexにやらせて', 'Codexへ委譲'

masanami/claude-harness52026年10月8日 更新

commit

無料日本語概要

Conventional Commits形式でコミットする。Triggers on: '/commit', 'コミットして', 'commit changes'

masanami/claude-harness52026年10月8日 更新

create-adr

無料日本語概要

恒常的な設計決定を ADR として記録する(退役する機能仕様から ADR 昇格の要否を判定するモードを併せ持つ)。定常フローの必須ステップではなく、必要時に呼ぶ。Triggers on: '/create-adr', 'ADRを書いて', '設計判断を記録', 'ADR昇格を判定'

masanami/claude-harness52026年10月8日 更新

create-e2e

無料日本語概要

仕様(チケットの完了条件・受入基準)からE2Eテストを実装する(非対話)。Triggers on: '/create-e2e', 'E2Eテストを書いて', 'E2Eテストを追加して'

masanami/claude-harness52026年10月8日 更新

create-ticket

無料日本語概要

機能仕様ドキュメントから要件チケットを作成する、または親要件チケットを実装チケット群に分解する。Triggers on: '/create-ticket', 'チケットを作成', 'Issueを作って', 'create ticket', '実装チケットに分解'

masanami/claude-harness52026年10月8日 更新

masanami のスキルをすべて見る

このスキルの問題を報告する