gen-devcontainerlisted
Install: claude install-skill thettwe/nyann
# gen-devcontainer
Wraps `bin/gen-devcontainer.sh`. Emits a devcontainer.json; preview-
by-default; idempotent on apply.
## When to trigger
- User wants a Codespaces-ready repo and there's no `.devcontainer/`
directory yet.
- User wants to refresh an existing devcontainer.json after upgrading
nyann (base image tags + extension lists shift with the
`snapshot_version` comment in the file).
- User wants to add forwarded ports / cpus / memory to an existing
devcontainer (use `--port 3000 --cpus 4 --memory 8gb`).
## When NOT to trigger
- User wants a **production Dockerfile** — that's an entirely
different concern; devcontainer.json is dev-environment only.
- User wants to **debug** a broken devcontainer build — open the
existing file with them; this skill generates fresh, not diagnoses.
- User is on a non-Codespaces, non-VS Code editor — the file still
works under JetBrains' Dev Containers plugin and `devcontainer
open` (CLI), but flag the broader VS Code-first defaults.
## Picking the language
Read `StackDescriptor.primary_language` from `bin/detect-stack.sh`:
| StackDescriptor.primary_language | --language |
|---|---|
| `typescript` / `javascript` | `node` |
| `python` | `python` |
| `go` | `go` |
| `rust` | `rust` |
| `dart` | `dart` |
| `java` / `kotlin` | `java` |
| `csharp` / `dotnet` | `dotnet` |
| `php` | `php` |
| `ruby` | `ruby` |
| `swift` | `swift` |
| `elixir` | `elixir` |
| `cpp` / `c` | `cpp` |
For polyglot monorepos (`workspaces[]` present