К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

sandbox-migrate-to-next — скилл для Claude Code: миграция на SDK 1.0

Скилл помогает перенести Cloudflare Sandbox приложение со стабильной версии пакета на предварительный релиз @cloudflare/sandbox@next (SDK 1.0). Нужен, если вы готовите код к переходу на будущий стабильный релиз.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add cloudflare/skills --skill sandbox-migrate-to-next -a claude-code
Открыть на GitHub

Что делает sandbox-migrate-to-next

Скилл проводит миграцию пошагово: сначала проверит исходный код на несовместимости, потом поможет обновить пакет, образ контейнера и код — от замены вызовов exec до удаления сессий и переоформления терминалов. Важно: Worker и контейнер должны остаться на одной версии @next, иначе протоколы не совпадут.

В процессе скилл указывает на жёсткие ограничения новой версии: процесс, запущенный через exec, — это только стартовый handle, не буферизованный результат; терминалы теперь создаются явно через createTerminal; интерпретаторы переехали под withInterpreter. Миграция в production требует немедленного разворота контейнера — постепенный rollout создаст несовместимое окно и упадёт.

Скилл опирается на официальную документацию по миграции и не придумывает API. Если вы уже на preview, используйте скилл sandbox-next для обычной работы.

Какие задачи решает

  • перенести приложение со стабильной версии Sandbox на SDK 1.0 preview
  • обновить вызовы exec, терминалы и сессии под новый API
  • синхронизировать версию Worker и контейнера перед cutover
  • проверить код на устаревшие транспортные настройки и deprecated методы
  • развернуть миграцию в production с немедленным rollout

Примеры запросов агенту

  • Помоги мне мигрировать приложение на @cloudflare/sandbox@next, есть старые вызовы exec и сессии
  • Проверь мой Sandbox код на совместимость с SDK 1.0 и скажи, что нужно переписать
  • Обнови Dockerfile и package.json на sandbox@next, потом помоги переделать код процессов

Как установить sandbox-migrate-to-next

1Через Skills CLI (Vercel)

npx skills add cloudflare/skills --skill sandbox-migrate-to-next -a claude-code

2Вручную: положить файлы

~/.claude/skills/sandbox-migrate-to-next/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/sandbox-migrate-to-next/

Из того же набора13

Весь набор →
cloudflare cloudflare Помогает агенту подбирать сервисы Cloudflare под задачи проекта, от хостинга до очередей и AI, и выбирать между CLI cf и Wrangler. Claude Code CX Codex Cursor +1 136 500установок wrangler cloudflare Помогает запускать команды Wrangler CLI, настраивать конфигурации и отлаживать деплой Cloudflare Workers в существующих проектах. Claude Code CX Codex Cursor +1 128 500установок workers-best-practices cloudflare Скилл настраивает ИИ на проверку продакшен-кода Cloudflare Workers по актуальным правилам рантайма, типам Wrangler и антипаттернам. Claude Code CX Codex Cursor +1 124 900установок durable-objects cloudflare Скилл помогает создавать, отлаживать и проверять Cloudflare Durable Objects для состояния, координации и постоянных соединений. Claude Code CX Codex Cursor +1 109 700установок web-perf cloudflare Пошаговый аудит Core Web Vitals, диагностика медленной загрузки и поиск блокирующих скриптов прямо в терминале. Claude Code CX Codex Cursor +1 109 300установок agents-sdk cloudflare Помогает создавать, отлаживать и проверять приложения на базе Cloudflare Agents SDK и пакета agents с актуальной документацией. Claude Code CX Codex Cursor +1 105 700установок cloudflare-email-service cloudflare Скилл для работы с Cloudflare Email Sending и Email Routing: помогает настроить отправку и приём писем в Workers. Claude Code CX Codex Cursor +1 101 400установок cloudflare-one cloudflare Помогает агенту проектировать, настраивать и разбирать развёртывания Cloudflare One Zero Trust и SASE. Пригодится, когда нужно спланировать Access, Gateway или туннели без похода в документацию вручную. Claude Code CX Codex Cursor +1 92 200установок

Похожие

dotnet-design-pattern-review официальный github Проверяет выбранный C#/.NET-код на применение паттернов проектирования и предлагает правки без изменения файлов. Подходит для ревью архитектуры проекта. GitHub Copilot 11 609установок api-design-principles Seth Hobson Скилл помогает проектировать и проверять REST- и GraphQL API. Пригодится при подготовке спецификации, пересмотре существующего API или согласовании стандартов команды. Claude Code CX Codex Cursor 30 348установок gemini-agents-api официальный google Управляет ресурсами Agent в Gemini Enterprise Agent Platform через API. Нужен для создания и настройки агентов до запуска диалогов. Claude Code Gemini CLI CX Codex 9 466установок upgrade-stripe stripe Помогает агенту обновить версии Stripe API, вебхуки и SDK, сверяя изменения между текущей и целевой версиями. Пригодится при миграции интеграции Stripe. Claude Code CX Codex Cursor +1 72 800установок postgresql-table-design Seth Hobson Помогает проектировать и проверять схемы PostgreSQL: типы, ключи, ограничения, индексы и разбиение таблиц. Claude Code CX Codex Cursor 27 780установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. Claude Code Claude.ai 130 949установок google-agents-cli-adk-code официальный Google Скилл даёт примеры и справку по Agent Development Kit: агентам, инструментам, колбэкам, состоянию и графовым workflow. Нужен при написании кода. Claude Code CX Codex Cursor +1 511 400установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. Claude Code CX Codex Cursor +1 472 300установок

Вопросы о sandbox-migrate-to-next

Как установить sandbox-migrate-to-next в Claude Code?

Выполните npx skills add cloudflare/skills --skill sandbox-migrate-to-next -a claude-code, затем откройте ~/.claude/skills/sandbox-migrate-to-next/SKILL.md.

Что делает sandbox-migrate-to-next?

Помогает перенести приложение Cloudflare Sandbox с @cloudflare/sandbox на предварительный релиз @cloudflare/sandbox@next (SDK 1.0). Проходит аудит кода, обновляет пакет и контейнер, переписывает API под новую версию и подготавливает production cutover.

Почему Worker и контейнер должны быть на одной версии @next?

Протоколы RPC между ними несовместимы в обе стороны. Если они на разных версиях, приложение упадёт. Поэтому production cutover — это одна синхронная развёртка с флагом --containers-rollout=immediate.

Исходный текст

SKILL.md · Apache-2.0
---
name: sandbox-migrate-to-next
description: Migrate Cloudflare Sandbox apps from stable @cloudflare/sandbox to @cloudflare/sandbox@next (SDK 1.0 preview). Use sandbox-next for apps already on the preview.
---

# Migrate stable → Sandbox SDK 1.0 preview (`@next`)

**Perform** the port. Follow the steps in order. Depth lives in docs—fetch the linked page when a step needs detail.

Human guide: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [1.0 preview](https://developers.cloudflare.com/sandbox/index.md)

**New projects** should start on `@next` (**`sandbox-next`**), not this skill. **Day-to-day stable work** → **`sandbox-stable`**. Deprecated-API cleanup **without** moving to `@next` → [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) first if needed.

Existing apps should migrate **when you can**, so you are ready when 1.0 becomes the stable release. Do **not** force production cutover without the user agreeing.

**Prefer installed `@next` types and the migrate doc over memory.**

## Workflow

1. **Review** hard rules and the replacement map  
2. **Audit** the codebase; list hits and target shapes  
3. **Clarify** with the user (cutover, bridge, Python image, unclear sites)  
4. **Upgrade** package, image, and code  
5. **Validate**  

Stop after any step that needs a user decision.

## Hard rules

- Worker package and container image must be the **same** `@next` line.  
- Production cutover uses **immediate** container rollout. Stable and `@next` control protocols are incompatible both ways; gradual rollout leaves a broken mixed window. In-flight container work can stop.  
- After cutover, `await sandbox.exec(...)` means process **started**, not command **finished**.  
- Argv is as-is (no implicit shell). Shell syntax needs an explicit shell binary.  
- Process handles have **no stdin** → terminals for interactive input.  
- Observation `timeout` / `AbortSignal` cancel the **wait only**, not the process.  
- No single retry loop for every error.  
- Do not invent APIs (`gitCheckout` on core, process stdin, string-exec completion helper).  
- Self-deployed bridge stays on **stable** (not part of the preview line yet).  

## Replacement map

| Stable | `@next` |
| ------ | ------- |
| `SANDBOX_TRANSPORT` / `transport` / `setTransport` | Remove — RPC only |
| `await sandbox.exec("cmd")` → buffered result | `await sandbox.exec(argv)` → handle, then `output` / waits |
| `execStream` / `startProcess` | Same handle: `logs`, `waitFor*`, `kill` |
| Default / named sessions | Gone — `cwd`/`env` per launch, or one shell script |
| `sandbox.terminal(request)` / session terminal | `createTerminal` + `terminal.connect(request)` |
| xterm `sessionId` | `terminalId` |
| Interpreter methods on `Sandbox` | `withInterpreter` → `sandbox.interpreter.*` |
| `gitCheckout` | argv `git` via `exec` |
| String kill signals | Numeric only |
| Files, mounts, backups, ports, tunnels, `proxyToSandbox` | Mostly unchanged (ignore session/transport bits on stable pages) |

Depth: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · after port, day-to-day → **`sandbox-next`**

## Audit

```sh
rg 'SANDBOX_TRANSPORT|transport:|setTransport|enableDefaultSession|createSession|getSession|deleteSession|execStream\(|startProcess\(|killProcess\(|sandbox\.terminal\(|sessionId|gitCheckout\(|SandboxTransport|ExecutionSession'
```

Also: string `exec(`, `cd` then a later `exec`, bare `createCodeContext` / `runCode` on `Sandbox`.

## Clarify (ask when needed)

- OK to cut production with `--containers-rollout=immediate` (live processes/terminals/streams may stop)?  
- Self-deployed bridge? Leave on stable.  
- Python interpreter → **`-python`** image variant?  
- Call sites not covered by the map?  

## Upgrade

### Package and image

```sh
npm install @cloudflare/sandbox@next
```

```dockerfile
FROM cloudflare/sandbox:next
# Python: cloudflare/sandbox:next-python
```

Same prerelease tag on Worker and image when not on floating `next`.

### Code by area

Apply replacements from the map. For each area, implement from the doc—not from stable habits:

| Area | Doc |
| ---- | --- |
| Commands / handles / waits | [Processes](https://developers.cloudflare.com/sandbox/index.md) · [Processes API](https://developers.cloudflare.com/sandbox/index.md) |
| `cwd` / `env` / secrets | [Environment](https://developers.cloudflare.com/sandbox/index.md) · [Outbound traffic](https://developers.cloudflare.com/sandbox/sdk/guides/outbound-traffic/index.md) |
| Drop sessions | [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [Lifecycle](https://developers.cloudflare.com/sandbox/index.md) |
| Terminals | [Terminals](https://developers.cloudflare.com/sandbox/index.md) |
| Interpreter | [Interpreter](https://developers.cloudflare.com/sandbox/index.md) |
| Errors | [Errors](https://developers.cloudflare.com/sandbox/index.md) |
| Durable job across requests | [Process execution — lifetime / durability](https://developers.cloudflare.com/sandbox/index.md) |

**Commands (shape):**

```ts
// Before (stable)
const result = await sandbox.exec("npm test");

// After (@next)
const process = await sandbox.exec(["/bin/bash", "-lc", "npm test"]);
const result = await process.output({ encoding: "utf8" });
```

```ts
const server = await sandbox.exec(["/bin/bash", "-lc", "npm run dev"], {
  cwd: "/workspace/app",
});
await server.waitForPort(3000, { timeout: 60_000 });
await server.kill(); // numeric; default 15
```

**Terminals (shape):**

```ts
const terminal = await sandbox.createTerminal({ command: ["bash"], cwd: "/workspace" });
const t = await sandbox.getTerminal(terminal.id);
if (!t) return new Response("terminal gone", { status: 410 });
return t.connect(request, { cursor, cols, rows });
```

**Interpreter (shape):**

```ts
import { Sandbox as BaseSandbox } from "@cloudflare/sandbox";
import { withInterpreter } from "@cloudflare/sandbox/interpreter";

export class Sandbox extends BaseSandbox<Env> {
  interpreter = withInterpreter(this);
}
```

**Git (shape):**

```ts
const clone = await sandbox.exec(
  ["git", "clone", "--depth", "1", "--", repoUrl, "/workspace/repo"],
  { cwd: "/workspace" },
);
const result = await clone.output({ encoding: "utf8" });
```

Delete transport settings entirely. Remove session APIs. Isolate users with **separate sandbox IDs**.

### Deploy cutover

Staging/branch first. Production is **one** deploy of matching Worker + image:

```sh
npx wrangler deploy --containers-rollout=immediate
```

Leave `rollout_active_grace_period` at default `0` (or set `0` if raised). After cutover, pre-deploy process/terminal IDs are invalid. Details: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [Container rollouts](https://developers.cloudflare.com/containers/configuration/rollouts/index.md)

## Validate

1. Lockfile + Dockerfile on the same `@next` line  
2. Typecheck against `@next`  
3. Smoke argv `exec` + `output({ encoding: "utf8" })`  
4. Smoke long process / terminal / interpreter if used  
5. Errors distinguished: unavailable / interrupted-RPC / stale / local wait  
6. No live secrets in sandbox env  
7. Grep again for removed APIs  
8. Production used `--containers-rollout=immediate`  

Then day-to-day work uses **`sandbox-next`**.

## Red flags — stop and fix

- Mixing `@next` Worker with stable image (or reverse)  
- Gradual container rollout for this cutover  
- Treating `await exec` as command completion  
- Assuming `cd` / exports persist across `exec` calls  
- One retry wrapper for every error  
- Inventing `gitCheckout`, process stdin, or undocumented APIs  
- Keeping pre-cutover process/terminal IDs after deploy  
- Forcing production cutover without user agreement  
- Putting live secrets in `setEnvVars` / launch `env`  

© cloudflare · Apache-2.0 · cloudflare/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой