Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

devcontainer-setup

Claude Codeや各言語ツール(Python/Node/Rust/Go)、永続ボリュームを含むdevcontainerを作成します。プロジェクトへのdevcontainerサポート追加、隔離された開発環境のセットアップ、またはサンドボックス化されたClaude Codeワークスペースの構成が必要なときに使用してください。

description の原文を見る

Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.

SKILL.md 本文

Devcontainer セットアップスキル

Claude Code とプログラミング言語固有のツーリングを備えた事前構成済み devcontainer を作成します。

使用時期

  • ユーザーが「devcontainer を設定してほしい」または「devcontainer サポートを追加してほしい」と要望する場合
  • ユーザーがサンドボックス化された Claude Code 開発環境を望む場合
  • ユーザーが永続的な設定を備えた分離された開発環境が必要な場合

使用しない時期

  • ユーザーが既に devcontainer 設定を持っており、単なる修正が必要な場合
  • ユーザーが一般的な Docker またはコンテナに関する質問をしている場合
  • ユーザーが本番用コンテナのデプロイを望んでいる場合(これは開発専用です)

ワークフロー

flowchart TB
    start([User requests devcontainer])
    recon[1. Project Reconnaissance]
    detect[2. Detect Languages]
    generate[3. Generate Configuration]
    write[4. Write files to .devcontainer/]
    done([Done])

    start --> recon
    recon --> detect
    detect --> generate
    generate --> write
    write --> done

フェーズ 1: プロジェクト調査

プロジェクト名の推定

以下の順序でチェック(最初にマッチしたものを使用):

  1. package.jsonname フィールド
  2. pyproject.tomlproject.name
  3. Cargo.tomlpackage.name
  4. go.mod → モジュールパス(/ の後の最後のセグメント)
  5. ディレクトリ名をフォールバック

スラッグに変換: 小文字に変換し、スペース・アンダースコアをハイフンに置き換える。

言語スタックの検出

言語検出ファイル
Pythonpyproject.toml, *.py
Node/TypeScriptpackage.json, tsconfig.json
RustCargo.toml
Gogo.mod, go.sum

マルチ言語プロジェクト

複数の言語が検出された場合、以下の優先順位で全て設定します:

  1. Python - プライマリ言語、uv + Python インストール用の Dockerfile を使用
  2. Node/TypeScript - devcontainer フィーチャを使用
  3. Rust - devcontainer フィーチャを使用
  4. Go - devcontainer フィーチャを使用

マルチ言語の postCreateCommand では、すべてのセットアップコマンドをチェーン:

uv run /opt/post_install.py && uv sync && npm ci

すべての検出された言語の拡張機能と設定は設定にマージされるべきです。

フェーズ 2: 設定生成

resources/ ディレクトリの基本テンプレートから開始します。以下を置換:

  • {{PROJECT_NAME}} → 人間が読める名前(例: "My Project")
  • {{PROJECT_SLUG}} → ボリュームのスラッグ(例: "my-project")

その後、以下の言語固有の変更を適用します。

基本テンプレート機能

基本テンプレートには以下が含まれます:

  • Claude Code マーケットプレイスプラグイン付き(anthropics/skills, trailofbits/skills, trailofbits/skills-curated)
  • サンドボックス化 - bubblewrap と socat 経由
  • Python 3.13 - uv 経由(高速バイナリダウンロード)
  • Node 22 - fnm 経由(Fast Node Manager)
  • ast-grep - AST ベースのコード検索用
  • ネットワーク分離ツール(iptables, ipset)- NET_ADMIN ケーパビリティ付き
  • セキュリティマウント: .devcontainer/ は読み取り専用でマウントしてコンテナエスケープを防止
  • トークン転送: CLAUDE_CODE_OAUTH_TOKENANTHROPIC_API_KEYremoteEnv 経由
  • モダン CLI ツール: ripgrep, fd, fzf, tmux, git-delta

言語固有セクション

Python プロジェクト

検出: pyproject.toml, requirements.txt, setup.py, または *.py ファイル

Dockerfile 追加:

基本 Dockerfile には既に uv 経由の Python 3.13 が含まれています。別のバージョンが必要な場合(pyproject.toml から検出)、Python インストールを変更:

# Install Python via uv (fast binary download, not source compilation)
RUN uv python install <version> --default

devcontainer.json 拡張機能:

customizations.vscode.extensions に追加:

"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff"

customizations.vscode.settings に追加:

"python.defaultInterpreterPath": ".venv/bin/python",
"[python]": {
  "editor.defaultFormatter": "charliermarsh.ruff",
  "editor.codeActionsOnSave": {
    "source.organizeImports": "explicit"
  }
}

postCreateCommand: pyproject.toml が存在する場合、コマンドをチェーン:

rm -rf .venv && uv sync && uv run /opt/post_install.py

Node/TypeScript プロジェクト

検出: package.json または tsconfig.json

Dockerfile 追加は不要: 基本テンプレートには fnm 経由の Node 22 が含まれています(Fast Node Manager)。

devcontainer.json 拡張機能:

customizations.vscode.extensions に追加:

"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"

customizations.vscode.settings に追加:

"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": "explicit"
}

postCreateCommand: ロックファイルからパッケージマネージャを検出し、基本コマンドとチェーン:

  • pnpm-lock.yamluv run /opt/post_install.py && pnpm install --frozen-lockfile
  • yarn.lockuv run /opt/post_install.py && yarn install --frozen-lockfile
  • package-lock.jsonuv run /opt/post_install.py && npm ci
  • ロックファイルなし → uv run /opt/post_install.py && npm install

Rust プロジェクト

検出: Cargo.toml

追加フィーチャ:

"ghcr.io/devcontainers/features/rust:1": {}

devcontainer.json 拡張機能:

customizations.vscode.extensions に追加:

"rust-lang.rust-analyzer",
"tamasfe.even-better-toml"

customizations.vscode.settings に追加:

"[rust]": {
  "editor.defaultFormatter": "rust-lang.rust-analyzer"
}

postCreateCommand: Cargo.lock が存在する場合、ロック付きビルドを使用:

uv run /opt/post_install.py && cargo build --locked

ロックファイルがない場合、標準ビルドを使用:

uv run /opt/post_install.py && cargo build

Go プロジェクト

検出: go.mod

追加フィーチャ:

"ghcr.io/devcontainers/features/go:1": {
  "version": "latest"
}

devcontainer.json 拡張機能:

customizations.vscode.extensions に追加:

"golang.go"

customizations.vscode.settings に追加:

"[go]": {
  "editor.defaultFormatter": "golang.go"
},
"go.useLanguageServer": true

postCreateCommand:

uv run /opt/post_install.py && go mod download

参考資料

追加の詳細については、以下を参照:

  • references/dockerfile-best-practices.md - レイヤ最適化、マルチステージビルド、アーキテクチャサポート
  • references/features-vs-dockerfile.md - devcontainer フィーチャ vs カスタム Dockerfile の使い分け

永続ボリュームの追加

devcontainer.json の新しいマウントのパターン:

"mounts": [
  "source={{PROJECT_SLUG}}-<purpose>-${devcontainerId},target=<container-path>,type=volume"
]

よくある追加:

  • source={{PROJECT_SLUG}}-cargo-${devcontainerId},target=/home/vscode/.cargo,type=volume (Rust)
  • source={{PROJECT_SLUG}}-go-${devcontainerId},target=/home/vscode/go,type=volume (Go)

出力ファイル

プロジェクトの .devcontainer/ ディレクトリに以下のファイルを生成:

  1. Dockerfile - コンテナビルド命令
  2. devcontainer.json - VS Code/devcontainer 設定
  3. post_install.py - 作成後のセットアップスクリプト
  4. .zshrc - シェル設定
  5. install.sh - devcontainer を管理する CLI ヘルパー(devc コマンド)

検証チェックリスト

ユーザーにファイルを提示する前に、以下を確認:

  1. すべての {{PROJECT_NAME}} プレースホルダが人間が読める名前に置換されている
  2. すべての {{PROJECT_SLUG}} プレースホルダがスラッグ化された名前に置換されている
  3. devcontainer.json で JSON 構文が有効(末尾のカンマなし、適切なネスト)
  4. 検出されたすべての言語に言語固有の拡張機能が追加されている
  5. postCreateCommand にすべての必要なセットアップコマンドが含まれている(&& でチェーン)

ユーザー指示

生成後、ユーザーに以下を通知:

  1. 開始方法: 「VS Code で開き、『Reopen in Container』を選択」
  2. 別方法: devcontainer up --workspace-folder .
  3. CLI ヘルパー: .devcontainer/install.sh self-install を実行して devc コマンドを PATH に追加

ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
trailofbits
リポジトリ
trailofbits/skills
ライセンス
CC-BY-SA-4.0
最終更新
不明

Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: trailofbits · trailofbits/skills · ライセンス: CC-BY-SA-4.0