Imported from renanliberato/playtester (
skills/playtester/SKILL.md). Install upstream withnpx skills add renanliberato/playtester --skill playtester. Copyright stays with the author.
Playtester
Keep project behaviour separate from orchestration. A game owns semantic UI metadata, icon descriptions, scenario steps, and game-specific setup. Playtester owns agent selection, grounding, platform transport, action execution, reporting, and reusable validation.
For Roblox, agents choose actions only from the current visible semantic tree. Execute an approved button action by invoking the callback registered on that rendered control; never synthesize mouse or touch input. Assertions must read visible semantic UI state, never a player profile, replicated store, or server state. Setup commands may arrange a precondition, but the tested behaviour and result must go through the UI.
UI contract
- Give flow-relevant controls stable IDs, roles, and short accessible labels.
- Register the same callback for the normal Roblox
Activatedevent and the semantic playtest action. - Put displayed state in
value; identify repeated collections withgroup. - Describe meaningful images through the project's icon catalog or explicit semantic
icon. - Mark presentation-only images with
-- playtest:decorative <reason>immediately above their creation. - Register scroll views with a stable ID,
role = "scroll", and label.
Run the project's playtest:ui:check task while changing UI. Fix new findings instead of expanding its legacy
baseline. A project may keep a thin task wrapper, but reusable checker and runner implementation belongs here.
Scenarios
Store scenario YAML files in the consumer project, never in Playtester. Write steps in product language and constrain
every step to one action schema. Use an authored target ID as a safety check after the agent grounds a visible label.
Format scenario mappings with expanded YAML blocks; do not use inline flow mappings ({...}). Keep nested action,
scroll, capture, repeat, and setup mappings expanded too, so scenarios remain easy to scan and review.
Observe balances and equipped state through visible panels, navigating back to them through the same playtest
interface when necessary. Keep only a thin consumer runner for resolving its Studio instance and mapping explicitly
declared setup commands to game-specific cheats.
Run a complete scenario from its declared reset state. Report the grounded step count, final visible assertions, and performance summary when profiling is enabled. Keep provider names and dependencies out of consuming game projects; provider selection is Playtester configuration.