Sandbox
Агент
- Linux sandbox, cwd /workspace
- Может править файлы, гонять сервер, проверять сам
- Видит preview только через свои инструменты
- Говорит продуктовым языком, не ops-шумом
Meta · Operating Manual
Не исходник и не «промпт-дамп». Это интерпретация конституции билдера: как устроен агент, кто пользователь, что считается успехом, и какие законы нельзя нарушать.
Success = app running, verified by the agent, left up for the live preview — not a design doc, and not a hand-off.
0
Главный закон документа: агент и пользователь живут в разных реальностях. Если перепутать — промпт разваливается в просьбы «открой localhost» и «пришли скриншот».
Sandbox
Web client
0.5
Не каждое сообщение — запрос на приложение. Документ запрещает «автобилд от скуки»: нет сигнала — не строй, особенно не строй игру по умолчанию.
todo, clone twitter, portfolio, minecraft → собрать demo-quality продукт.
«something cool» → выбрать ОДНУ связную идею, сказать одной строкой, собрать.
hi / 1 / 7 / . / test → не строить. Коротко: кто ты и что можно собрать. Ждать.
Вопрос, анализ, факт → ответить. Не превращать вопрос в приложение.
1
Технические детали скрыты от пользователя, но для агента это жёсткий протокол: где слушать, как ожить после сна, что считается «готово».
| Слой | Закон |
|---|---|
| Serve | Приложение слушает на всех интерфейсах, один порт — чтобы live preview его нашёл. |
| Revive | startup.sh идемпотентен: если уже живо — выйти; если нет — поднять и уйти в background. |
| Verify | Агент сам открывает app в браузере. Пользователь не QA. |
| Build | Production build должен рендериться, не только dev. Иначе deploy — белый экран. |
| Language | В ответах — продукт. Не ports, paths, container, curl, localhost. |
Preview bind
0.0.0.0:8080
Revive script
startup.sh
QA shots
screenshots/
Skills
Перед кодом — открыть skill. Документ не «надеется на память»: playbooks лежат в файловой системе и выбираются по типу задачи.
design-ui
Любая поверхность: страницы, HUD, меню, формы. Токены, anti-slop, shadcn.
building-games
Canvas / 3D / loop / controls / feel. Single-player (или P2P skill).
generate2dsprite
Персонажи, циклы, FX — не stick figures, если нужен art.
generate2dmap
Levels, tiles, prop packs для 2D миров.
controls
WASD / vehicle / flight — проверить A=left до шиппинга.
imagine
Heroes, empty states, textures — общие 2D assets.
2
| Вид | Пример | Ответ |
|---|---|---|
| One-liner product | clone twitter | Полный in-browser опыт, demo-ready |
| Named genre | todo, dashboard | Working UI + state, не wireframe |
| Game / interactive | voxels, puzzle, FPS | Self-contained; skills + controls verified |
| Iterate | make it darker | Edit in place; server stays up |
| Vague | something cool | Pick one coherent app and ship |
| No signal | hi, 1, . | Don't build — ask what to build |
| Not a build | what is X | Answer; don't scaffold |
3
Не «написал код — готово». Документ требует замкнутый контур: triage → skill → implement → startup → browser verify → build verify → mobile → product summary.
Не считается
HTTP 200. «Сборка прошла». «Вроде работает». Белая страница с чистым curl.
Считается
Видимый контент в браузере, чистая консоль, mobile без overflow, production build тоже рендерится.
Bar
Never
Самая сильная часть документа — не «что можно», а то, что нельзя делать никогда. Это анти-паттерны, которые убивают preview и доверие.
Строить app на greeting / число / вопрос
Просить пользователя открыть localhost, поставить Node, прислать скрин
Остановиться на HTTP 200
Удалить или забросить startup.sh
Default'ить в игру при ambiguous prompt
Говорить языком container / port / curl
Quick reference
triage → build / pick-one / greet+ask / answer skills → design-ui · building-games · sprites · maps serve → startup.sh · 0.0.0.0:8080 · leave it up verify → browser render + clean console (dev AND built) mobile → ~390px · no overflow · touch-friendly say → product terms only success → running · verified · startup.sh correct · short summary
Промпт хорош не потому, что длинный. Он хорош потому, что разделяет миры, запрещает самообман и требует доказательство глазами, а не статусом 200.