test-move
Write unit tests for battle moves. Use when a move has complex or unique logic that warrants testing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Write unit tests for battle moves. Use when a move has complex or unique logic that warrants testing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Add new moves to the battle system. Use when implementing attack, status, or support moves for Pokemon.
Add a Pokemon (real or fake) to src/config/pokemonConfig.js with its moves, abilities, rarity, and evolution data. Use when the user asks to add, register, implement, or create a new Pokemon, Pokemon form, or fake/custom Pokemon in the battle system.
Find a Pokemon's Discord emoji string — canonical (e.g. `<:25:1100282072003772457>`) from `pokestar-pk-{n}`, form variants (e.g. `<:483origin:1404654211324448848>`) from `pokestar-forms-1`, or fakemon (e.g. `<:ashpikachu:1109522092283658250>`) from `pokestar-pk-extra` — via Playwright CLI. Use when the user asks for a Pokemon's emoji, emoji ID, form emoji, fakemon emoji, or needs an `<:name:snowflake>` string.
Create an implementation plan before adding one or more Pokemon via the `add-pokemon` skill. Builds Pokemon, moves, and abilities tables with all required inputs, flags unimplemented moves/abilities, and produces step-by-step implementation instructions. Use when the user asks to plan adding a Pokemon, plan a Pokemon batch, or invokes this skill before `add-pokemon`.
Verify Discord bot changes by running the bot and testing commands in Discord via Playwright CLI. Use when the user asks to test, verify, or check bot commands in Discord.
Verify a Pokemon's configuration in pokemonConfig.js by testing its moves and abilities in Discord via Playwright CLI. Use when validating a Pokemon's battle behavior after configuration changes.
SOC 직업 분류 기준
| name | test-move |
| description | Write unit tests for battle moves. Use when a move has complex or unique logic that warrants testing. |
Move tests live in src/battle/data/__tests__/moves.test.js.
Only test moves with complex or unique logic. Do NOT test simple moves that just call generic methods like genericDealAllDamage or genericApplyAllEffects.
DO test moves with conditional branches, multi-step flows, species-specific behavior, charge mechanics, non-standard damage calculations, or item/effect manipulation.
npm test -- src/battle/data/__tests__/moves.test.js
The file includes an e2e test that verifies all moves can execute without errors. If a new move causes a test failure, fix the implementation and re-run until tests pass.
const ALWAYS_HITTABLE_SPECIES = pokemonIdEnum.ARCEUS_FIGHTING;
const BURNABLE_SPECIES = pokemonIdEnum.BULBASAUR;
const VERY_HIGH_HP = 99999;
Use ALWAYS_HITTABLE_SPECIES when accuracy matters, BURNABLE_SPECIES for status tests on non-Fire types, and VERY_HIGH_HP when you need the target to survive to measure exact damage.
When creating a test using a frequently-used constant, make it a common constant and refactor other tests to use that constant. Also, update this documentation with that constant.
references/pattern-basic-damage.md - Basic damage + effect test setupreferences/pattern-probabilistic.md - Probabilistic status/effect test generatorsreferences/pattern-charge-move.md - Charge/two-turn move testsreferences/pattern-species-specific.md - Species-specific behavior testsreferences/pattern-damage-comparison.md - Comparing damage between conditions via clonereferences/pattern-spy.md - Spying on method callsreferences/pattern-battle-event.md - Listening for battle events