devcontainer-bootstrap
SKILL.md
devcontainer-bootstrap
使いどころ
- 任意リポジトリに Dev Container を素早く導入したいとき
- 既存
.devcontainer/を壊さず拡張したいとき(バックアップ必須) - Node/Python/Rust の代表的セットアップをテンプレで貼りたいとき
ワークフロー((1) scan → (2) detect → (3) apply/update → (4) explain)
- scan: リポジトリルートを確認し、スタック候補ファイルをチェック
- detect:
scripts/detect_stack.shでnode|python|rust|unknownを判定(複数命中や go.mod のみは unknown → stack を明示指定) - apply/update:
scripts/apply_devcontainer.shを実行し.devcontainer/を生成/更新 - explain: 実行ログを読み、何がバックアップ/更新されたかをユーザーに伝える。競合や手動フォローが必要なら明示
実行オプション(チャットで指定可能)
stack:auto|node|python|rust(default auto, 複数命中や go.mod のみは unknown → stack 指定を促す)packageManager:npm|pnpm|yarn(node のみ、postCreate で install 実行)mode:safe|overwrite- safe: 既存
devcontainer.jsonをマージ(extensions/settings/features/postCreateCommand)。jq無しでも最小追記(postCreate 実行を確実に追加)。既存 Dockerfile は保持。 - overwrite: stack テンプレートで
devcontainer.jsonとDockerfileを置換。
- safe: 既存
includeTools:true|false(default false)- true の場合、追加 feature として git / github-cli を組み込む(上書きではなくマージ)。
addCI:true|false(default false)- GitHub Actions 最小 workflow (
.github/workflows/devcontainer-bootstrap.yml) を生成。safe で既存があればバックアップのみしてスキップ、overwrite なら置換。
- GitHub Actions 最小 workflow (
手順(ローカル実行例)
# 1. スタック自動判定(複数命中なら unknown)
bash skills/devcontainer-bootstrap/scripts/detect_stack.sh .
# 2. safe モードで適用(自動判定 + 追記中心)
bash skills/devcontainer-bootstrap/scripts/apply_devcontainer.sh --mode safe
# 3. node + pnpm で overwrite し CI も生成
bash skills/devcontainer-bootstrap/scripts/apply_devcontainer.sh --stack node --package-manager pnpm --mode overwrite --include-tools true --add-ci true
生成/更新内容
.devcontainer/(devcontainer.json, Dockerfile, postCreate.sh)。既存があれば.devcontainer.bak-<timestamp>/にバックアップしてから更新。- VS Code 推奨設定と拡張は
customizations.vscodeに記述(参考: Dev Container supporting tools)。 - postCreate は stack に応じて依存導入をベストエフォートで実行(失敗は非致命)。
addCI=trueの場合、devcontainers/ci@v0.3.1900000417を使う最小 workflow を生成。- Node テンプレートは
mcr.microsoft.com/devcontainers/typescript-node:<メジャー>を使用(latest は避け、例:24)。LTS 更新時はメジャー番号タグを明示的に上げる。 - Node イメージタグの選定はコードベースの情報を参照して行う
- 優先順:
.nvmrc→.node-version→package.jsonのengines.node - いずれも無い場合はレジストリ (
https://mcr.microsoft.com/v2/devcontainers/typescript-node/tags/list) から最新メジャーを確認し、latest は避けてメジャー番号タグを使う
- 優先順:
- Python テンプレートは
mcr.microsoft.com/devcontainers/python:<バージョン>を使用(latest は避け、デフォルト例:3.14)- 優先順:
.python-version→pyproject.tomlのrequires-pythonまたはtool.poetry.dependencies.python→requirements.txtに併記された Python バージョン記述 - いずれも無い場合はレジストリ (
https://mcr.microsoft.com/v2/devcontainers/python/tags/list) を参照して安定版メジャー/マイナーを選ぶ(latest は避ける)
- 優先順:
競合・注意
- 複数スタックが同時に検出された場合や go.mod のみの場合は
stackを明示する。 - safe モードでマージできない部分があればログに警告を出す。壊したくない場合は safe を優先。
- 危険な
git config --global safe.directory '*'は一切実行しない。 - 詳細な判断基準や safe/overwrite の使い分けは
docs/decision-guide.mdを参照。
バンドル済みリソース
scripts/detect_stack.sh: スタック判定(node/python/go/unknown)scripts/apply_devcontainer.sh: テンプレ適用 & 安全更新 & CI 生成templates/: stack 別devcontainer.json/Dockerfile(node/python/rust) + 共通postCreate.shdocs/decision-guide.md: 判定ルール・バックアップ方針・safe/overwrite の違い・よくある罠
Weekly Installs
4
Repository
nimiusrd/agent-skillsFirst Seen
Feb 28, 2026
Security Audits
Installed on
cline4
gemini-cli4
github-copilot4
codex4
kimi-cli4
cursor4