add-an-enemy

Guides adding enemy archetypes and AI behaviours to a TypeScript game codebase.

Updated Sep 20, 2026
One-click install
npx skills add https://github.com/AmirOssanloo/helix-game --skill add-an-enemy-amirossanloo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: add-an-enemy
Source: https://github.com/AmirOssanloo/helix-game/tree/main/.claude/skills/add-an-enemy
Command: npx skills add https://github.com/AmirOssanloo/helix-game --skill add-an-enemy-amirossanloo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a new enemy to the Helix game requires coordinated changes across content definitions, AI behaviour modules, and simulation tests, and missing any step breaks the fixed-step simulation or the definition of done. ## Core Features & Use Cases - Runbook-driven workflow: Follows the documented adding-an-enemy runbook while supplying the extra context an automated worker needs, such as which architecture quick references to load first. - Authoring constraints: Enforces rules like required fields with no defaults, no movement code in definitions, and behaviours that allocate nothing and read all numbers from the unit definition. - Test coverage checklist: Ensures every archetype gets the six simulation tests covering aggro on sight, aggro on damage, range holding, kiting or closing, leash, and death with experience. - Use Case: When asked to add a new pack enemy with a custom aggro behaviour, this skill walks through creating the definition under src/content/enemies/, the behaviour under src/domain/ai/behaviours/, and the required tests. ## Quick Start Add a new enemy archetype with a custom AI behaviour to the game, including its definition, behaviour module, and simulation tests.

Frequently Asked Questions about add-an-enemy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new enemy archetype to a Phaser game?▼

Create a definition under src/content/enemies/ with every field required and no defaults, add a behaviour under src/domain/ai/behaviours/, and write the six simulation tests covering aggro, range holding, kiting, leash, and death with experience.

What tests does a new enemy need in a fixed-step simulation?▼

Every archetype gets six simulation tests: aggro on sight, aggro on damage, range holding, kiting or closing, leash, and death with experience. These verify the behaviour drives the state machine deterministically.

Can an enemy definition include movement code?▼

No. A definition only adds numbers and keys. Every unit gets turn-then-move, push-out, and pathing for free from the engine, so movement code never belongs in a definition file.

How do enemy abilities differ from player spells?▼

An enemy ability follows the add-a-spell skill and lives under src/content/abilities/, but unlike player spells it is created without a recipe. Its numbers come from the enemy's definition.

Why must enemy behaviours avoid allocations?▼

Behaviours run inside a fixed-step simulation that replays to the tick, so they must allocate nothing, read the spatial hash, ask the pathing module for paths, and take every number from the unit's definition to stay deterministic.