Claude Info
Разное

claude-sbox

gavogavogavo/claude-sbox

Claude Code скилл для разработки в s&box (Source 2 от Facepunch). Верифицированные по схеме движка API-референсы, 10 готовых примеров кода, корректные паттерны C#-компонентов, Razor UI, физики и сетевого взаимодействия.

Установка

terminal
bash
git clone https://github.com/gavogavogavo/claude-sbox.git

README

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, верифицированным по экспортированной схеме движка.


Установка

Персональная (доступна во всех проектах):

bash
mkdir -p ~/.claude/skills
git clone https://github.com/gavogavogavo/claude-sbox ~/.claude/skills/sbox

Локальная для проекта (только для этой игры):

bash
cd my-sbox-game
mkdir -p .claude/skills
git clone https://github.com/gavogavogavo/claude-sbox .claude/skills/sbox

Claude 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.md271Роутер + таблица перевода Unity→s&box + десять правил
references/core-concepts.md575Система сцен, GameObject, компоненты, жизненный цикл, [Property], префабы, события сцены, GameObjectSystem, async
references/components-builtin.md729144 встроенных компонента — рендереры, rigidbody, коллайдеры, CharacterController, CameraComponent, освещение, аудио, UI, NavMeshAgent, PlayerController, частицы, постобработка
references/ui-razor.md834Razor-панели, SCSS, flexbox-разметка, встроенные элементы управления (Button / TextEntry / DropDown / SliderControl / VirtualGrid), NavigationHost, переходы
references/networking.md672Лобби, Connection, [Sync] + SyncFlags, [Rpc.Broadcast/Host/Owner], владение, INetworkListener, INetworkSpawn, snapshot-данные, выделенные серверы
references/input-and-physics.md597Система ввода, builder API SceneTrace, PhysicsWorld, коллизии, Vector3/Rotation/Angles/Transform/BBox/Ray/Capsule, TimeSince/TimeUntil, Gizmo.Draw
references/api-schema-core.md930Полные публичные сигнатуры ~50 наиболее используемых типов
references/api-schema-extended.md2753Организованный по пространствам имён индекс 738 дополнительных типов для поиска
references/patterns-and-examples.md105610 полных запускаемых примеров (Health + IDamageable, CharacterController от первого лица, hitscan-оружие, сетевой игровой менеджер, игрок с [Sync]/RPC, Razor HUD, rigidbody-граната, AI-автомат состояний NavMeshAgent, спаунер префабов, триггерный пикап)

Каждая API-сигнатура в каждом референсном файле верифицирована по экспортированной схеме движка s&box (raw/api-schema.json, ~1850 типов в 61 пространстве имён). Схема является единственным источником истины — если документация и схема расходятся, приоритет за схемой.


Обновление

bash
cd ~/.claude/skills/sbox
git pull

Claude Code перезагружает изменённые файлы скилла в рамках текущей сессии.


Пересборка из исходников

Конечным пользователям это не нужно. Для мейнтейнеров, желающих пересобрать референсные файлы под более новую версию движка s&box:

bash
./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, если изменяете процесс сборки или добавляете новые источники.

Похожие скиллы