Skip to content
cccskills
FreePublished on GitHub

init-devcontainer

devcontainer環境を構築する設定ファイルを生成する。Triggers on: '/init-devcontainer', 'devcontainerを設定', 'devcontainer環境を作って'

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md5.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

commit

Free

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

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

The English summary is being prepared. Showing the original description.

masanami/claude-harness5Updated Oct 19, 2026

See all skills by masanami

Report a problem with this skill