claude-sbox
gavogavogavo/claude-sboxClaude Code скилл для разработки в s&box (Source 2 от Facepunch). Верифицированные по схеме движка API-референсы, 10 готовых примеров кода, корректные паттерны C#-компонентов, Razor UI, физики и сетевого взаимодействия.
Установка
git clone https://github.com/gavogavogavo/claude-sbox.gitREADME
claude-sbox
Скилл для Claude Code, который обучает Claude писать идиоматичный код для s&box — C#-компоненты, Razor UI, физику и сетевое взаимодействие — без использования Unity-паттернов.
s&box — это игровой движок Source 2 от Facepunch с C#-слоем скриптинга. Его API, жизненный цикл и сетевая модель принципиально отличаются от Unity, поэтому без скилла Claude постоянно галлюцинирует: void Start(), GetComponent<T>() в Unity-смысле, Physics.Raycast, [SerializeField], StartCoroutine — всё это неверно для s&box. Скилл загружается при написании кода для s&box и перенаправляет Claude к корректным API, верифицированным по экспортированной схеме движка.
Установка
Персональная (доступна во всех проектах):
mkdir -p ~/.claude/skills
git clone https://github.com/gavogavogavo/claude-sbox ~/.claude/skills/sboxЛокальная для проекта (только для этой игры):
cd my-sbox-game
mkdir -p .claude/skills
git clone https://github.com/gavogavogavo/claude-sbox .claude/skills/sboxClaude Code подхватывает изменения файлов скилла в реальном времени. Однако если директория ~/.claude/skills/ не существовала на момент запуска сессии Claude Code (то есть это ваш первый персональный скилл), после выполнения mkdir необходимо перезапустить Claude Code, чтобы наблюдатель зарегистрировал новую директорию.
Почему директория называется
sbox, а неclaude-sbox? Полеname:в frontmatter файлаSKILL.mdимеет значениеsbox, которое становится slash-командой/sbox. Клонирование в~/.claude/skills/sbox/синхронизирует имя директории с именем вызова.
Проверка работоспособности
В любой сессии Claude Code введите:
/sbox
Роутер загрузится. Либо задайте триггерный вопрос и проследите, как Claude обращается к референсному файлу:
How do I write a networked player controller in s&box?
Claude должен открыть references/core-concepts.md, references/networking.md и/или references/patterns-and-examples.md перед ответом — это признак того, что скилл работает. Если Claude отвечает по памяти, не читая файл, что-то пошло не так; см. раздел Устранение неполадок.
Содержимое
SKILL.md — это роутер, а не референс. Когда Claude нужны подробности, он открывает один из следующих файлов:
| Файл | Строк | Содержание |
|---|---|---|
SKILL.md | 271 | Роутер + таблица перевода Unity→s&box + десять правил |
references/core-concepts.md | 575 | Система сцен, GameObject, компоненты, жизненный цикл, [Property], префабы, события сцены, GameObjectSystem, async |
references/components-builtin.md | 729 | 144 встроенных компонента — рендереры, rigidbody, коллайдеры, CharacterController, CameraComponent, освещение, аудио, UI, NavMeshAgent, PlayerController, частицы, постобработка |
references/ui-razor.md | 834 | Razor-панели, SCSS, flexbox-разметка, встроенные элементы управления (Button / TextEntry / DropDown / SliderControl / VirtualGrid), NavigationHost, переходы |
references/networking.md | 672 | Лобби, Connection, [Sync] + SyncFlags, [Rpc.Broadcast/Host/Owner], владение, INetworkListener, INetworkSpawn, snapshot-данные, выделенные серверы |
references/input-and-physics.md | 597 | Система ввода, builder API SceneTrace, PhysicsWorld, коллизии, Vector3/Rotation/Angles/Transform/BBox/Ray/Capsule, TimeSince/TimeUntil, Gizmo.Draw |
references/api-schema-core.md | 930 | Полные публичные сигнатуры ~50 наиболее используемых типов |
references/api-schema-extended.md | 2753 | Организованный по пространствам имён индекс 738 дополнительных типов для поиска |
references/patterns-and-examples.md | 1056 | 10 полных запускаемых примеров (Health + IDamageable, CharacterController от первого лица, hitscan-оружие, сетевой игровой менеджер, игрок с [Sync]/RPC, Razor HUD, rigidbody-граната, AI-автомат состояний NavMeshAgent, спаунер префабов, триггерный пикап) |
Каждая API-сигнатура в каждом референсном файле верифицирована по экспортированной схеме движка s&box (raw/api-schema.json, ~1850 типов в 61 пространстве имён). Схема является единственным источником истины — если документация и схема расходятся, приоритет за схемой.
Обновление
cd ~/.claude/skills/sbox
git pullClaude Code перезагружает изменённые файлы скилла в рамках текущей сессии.
Пересборка из исходников
Конечным пользователям это не нужно. Для мейнтейнеров, желающих пересобрать референсные файлы под более новую версию движка s&box:
./scripts/fetch-raw.sh # клонирует Facepunch/sbox-docs в raw/sbox-docs
# вручную поместите raw/api-schema.json (см. docs/DESIGN.md)
node scripts/build_extended.js # пересобирает references/api-schema-extended.mdПолный процесс сборки — включая принципы формирования каждого референсного файла, цикл верификации по схеме и известные проблемы — задокументирован в docs/DESIGN.md и docs/BUILD_LOG.md.
Устранение неполадок
Claude не активирует скилл на вопросы по s&box.
Проверьте, что директория находится по пути ~/.claude/skills/sbox/ (не ~/.claude/skills/claude-sbox/ и не ~/.claude/skills/sbox-skill/). Имя директории должно совпадать с полем name: в frontmatter. Также попробуйте явно вызвать скилл командой /sbox, чтобы убедиться в его установке.
Claude отвечает на вопросы по s&box, не открывая референсный файл.
Это означает галлюцинацию из Unity-памяти — именно та ошибка, для предотвращения которой создан скилл. Либо скилл не загружается, либо описание не срабатывает. Попробуйте принудительно загрузить его командой /sbox, затем повторите вопрос.
Скилл загружается, но предлагает API, которые не компилируются. Откройте issue с предложенным кодом и указанием, из какого референсного файла, по словам Claude, он взят. Все включённые сигнатуры должны быть верифицированы по схеме; регрессии считаются багами.
Я клонировал в ~/.claude/skills/claude-sbox/ — что делать?
Либо переименуйте директорию в sbox, либо измените поле name: в SKILL.md на claude-sbox. То же касается локальных установок для проекта.
Участие в разработке
Issues и PR приветствуются. Перед отправкой:
- Верифицируйте новые API-сигнатуры по
raw/api-schema.jsonперед добавлением в референсные файлы. - Запустите примеры кода — хотя бы синтаксическую проверку — прежде чем добавлять их в
patterns-and-examples.md. - Обновите
docs/BUILD_LOG.md, если изменяете процесс сборки или добавляете новые источники.