원클릭으로
playtest-qa
Use when verifying that a majesty-clone feature or fix actually works — after any sim/render/UI change, before commit or deploy
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when verifying that a majesty-clone feature or fix actually works — after any sim/render/UI change, before commit or deploy
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when tuning numbers in majesty-clone, changing sim/data.js, or investigating balance complaints (class dies too fast, economy starves, game too easy/hard, win unreachable)
Use when adding or changing game mechanics in majesty-clone (new hero class, building, monster, flag type, behavior) — before writing any code for the feature
Use when an experiment in this repo is done and the user asks to post about it to the vibecoders chat — "запость в чат", "отчёт в вайбкодеры", "расскажи в чате что сделал", "отправь в вайбкодеров". Covers both the voice (микроотчёт нейрочела) and the send mechanics (tg-telethon userbot).
Use when given a claude.ai/chat/<uuid> link and asked to get, fix, or deploy its code/artifact, or when any data from the user's logged-in claude.ai session is needed (no public API exists for user chats). Also covers "artifact had an error" requests — the error is often the artifact sandbox, not the code.
| name | playtest-qa |
| description | Use when verifying that a majesty-clone feature or fix actually works — after any sim/render/UI change, before commit or deploy |
Фича не проверена, пока её не видели в работающей игре. Чтение кода — это не верификация. Лестница: headless → unit-probe → live browser → prod.
1. Headless (обязательно после любой sim-правки):
cd majesty-clone && node sim/headless.js --minutes 30 --seed 42
Последняя строка обязана быть determinism: OK. Сломанный детерминизм = баг, даже если игра «работает».
2. Unit-probe — сценарий на чистых sim-модулях (hire → kill → revive и т.п.):
node --input-type=module -e "
import { newGame, hireHero } from './public/js/sim/world.js';
import { tick } from './public/js/sim/update.js';
const st = newGame(42); /* … сценарий … */"
3. Live browser (мутировать локальную игру МОЖНО и НУЖНО):
PORT=3457 node server.js (или уже запущен — проверь curl localhost:3457/health).http://localhost:3457/?debug=1.window.__game (.state, .view, .speed), window.__actions (newGame, hire, flagOn…).__game.state.gold = 5000 (чит), __game.speed = 4 (ускорить), import('/js/sim/world.js') в evaluate_script даёт те же singleton-модули — можно вызывать addBuilding/hireHero/destroyLair напрямую.?debug=1 + клик по герою → top-кандидаты utility с score — главный инструмент для AI-поведения.__actions.newGame(). НЕ localStorage.clear()+reload — visibilitychange может пересохранить старый стейт.4. Prod (после деплоя): https://majesty-clone-production.up.railway.app — /health, загрузка без console errors, network без 404 (404 сразу после railway up — подожди и перепроверь).
Конкретные значения из живого стейта («revived hero hp 49/98, home id валиден»), скриншот с видимым эффектом, строка determinism: OK. «Код выглядит правильно» доказательством не является.