一键导入
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. «Код выглядит правильно» доказательством не является.