Вайбкодинг
Начните диалог с прямой инструкции и компактного машиночитаемого справочника:
Ты работаешь над TypeScript-модулем для KILLSCRIPT.Перед изменением кода прочитай https://silentbless.github.io/killscript/llms.txt.Используй только описанные там API и ссылки на native API reference.llms.txt объясняет структуру проекта, границу клиента и Reflex, конструкции
компилятора, ограничения среды выполнения и известные баги игры. Файл специально сделан
компактным: модель может перечитать его перед задачей вместо догадок на основе
Lua для Roblox, браузера или Node.js.
Просите результат, а не один файл
Заголовок раздела «Просите результат, а не один файл»Опишите поведение и ограничения:
Добавь клиентский индикатор состояния по F6. Вынеси компонент в отдельный файл,объяви бинд через defineControls() и удаляй визуальные объекты при выключении.Не принимай игровые решения на клиенте.Позвольте ИИ выбирать файлы внутри документированной структуры. Требование
сложить всё в main.ts мешает статической сборке и усложняет развитие.
Быстро проверяйте результат
Заголовок раздела «Быстро проверяйте результат»Во время изменений держите запущенным npm run dev. После законченного шага
просите выполнить:
npm run checkЗатем проверяйте видимый результат в игре. Типы доказывают форму и контекст API, но только игра подтверждает положение камеры, внешний вид UI и актуальное поведение среды выполнения.
Правила для ИИ
Заголовок раздела «Правила для ИИ»- Оставлять в
main.tsкороткий список импортов компонентов. - Импортировать правильный
@killscript/sdk/clientили/server. - Принимать решение в Reflex, только если его API видит нужное состояние и способен применить результат; затем информировать клиент.
- Использовать
defineNetwork()вместо прямой отправки: сообщения одного тика уходят одной пачкой. - Использовать методы SDK для массивов игры, планировщика, управления и очистки ресурсов.
- Если нужного метода в SDK нет, обращаться к типизированному API игры, а не выдумывать его.
- Не предполагать наличие API Node.js, браузера, Roblox, Luau или неограниченного Lua.
- Не обходить известное ограничение игры только потому, что setter присутствует в типах.
Точное поведение API игры описано в API игры и типы.