.claude/skills/combat/SKILL.md
# Combat Initiates a combat encounter for testing. Calls the `combat_initiate` edge function to start combat in the sector of a given character/ship. ## Parameters - **target** (required): Either a character name (e.g. `JOETRADER`) or a ship UUID to initiate combat from that ship's character. If not provided, ask the user for a character name or ship ID. ## Steps ### 1. Source environment variables ```bash set -a && source .env.supabase && set +a ``` ### 2. Resolve the character and ship
npx skillsauth add pipecat-ai/gradient-bang .claude/skills/combatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Initiates a combat encounter for testing. Calls the combat_initiate edge function to start combat in the sector of a given character/ship.
JOETRADER) or a ship UUID to initiate combat from that ship's character.If not provided, ask the user for a character name or ship ID.
set -a && source .env.supabase && set +a
If target is a character name:
Look up the character by name:
curl -s "${SUPABASE_URL}/rest/v1/characters?name=eq.<character_name>&select=character_id,name,current_ship_id,corporation_id" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
If no result, report that the character was not found and stop. Save character_id and current_ship_id.
Then look up the ship to get the sector:
curl -s "${SUPABASE_URL}/rest/v1/ship_instances?ship_id=eq.<current_ship_id>&select=ship_id,ship_type,ship_name,current_sector,current_fighters,current_shields" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
If target is a ship UUID:
Look up the ship and its associated character:
curl -s "${SUPABASE_URL}/rest/v1/ship_instances?ship_id=eq.<ship_id>&destroyed_at=is.null&select=ship_id,ship_type,ship_name,current_sector,owner_type,owner_character_id,owner_corporation_id" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
For owner_type = "character", use owner_character_id as the character_id.
For owner_type = "corporation", the pseudo-character has character_id = ship_id.
Then look up the character:
curl -s "${SUPABASE_URL}/rest/v1/characters?character_id=eq.<character_id>&select=character_id,name,current_ship_id" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
Verify the character exists and current_ship_id matches the ship. If not, report the mismatch and stop.
Before initiating, show what's in the sector so the user knows what opponents are present:
curl -s "${SUPABASE_URL}/rest/v1/ship_instances?current_sector=eq.<sector>&destroyed_at=is.null&in_hyperspace=eq.false&select=ship_id,ship_type,ship_name,owner_type,owner_character_id,current_fighters,current_shields,is_escape_pod" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
Display a summary table of ships in the sector (name, type, fighters, shields). Highlight the initiating ship.
curl -s -X POST "${SUPABASE_URL}/functions/v1/combat_initiate" \
-H "Content-Type: application/json" \
-H "x-api-token: ${EDGE_API_TOKEN}" \
-d '{
"character_id": "<character_id>",
"admin_override": true
}'
If EDGE_API_TOKEN is not set in the environment, omit the x-api-token header (local dev without JWT verification allows all requests).
Show the user:
combat_initiate edge function, which creates a full combat encounter with deadlines and round timerscombat_tick if no actions are submitted before the deadlinenpx supabase functions serve --workdir deployment --no-verify-jwt --env-file .env.supabasetesting
# Restore Ship Restores a ship to a healthy state for testing. Clears the `destroyed_at` flag, restocks fighters/shields/warp power to max values from the ship definition, re-adds corporation ships to `corporation_ships` if missing, and recreates the pseudo-character record for corp ships so tasks can be issued. No events are emitted — this is a database-only operation. ## Parameters Ask the user for: - **ship_id**: UUID of the ship to restore (required) ## Steps ### 1. Source environment
development
# Reset World Resets the game database, generates a fresh universe, loads quest definitions, and seeds combat cron config. ## Parameters The user specifies the environment as an argument: `/reset-world local`, `/reset-world dev`, or `/reset-world prod`. If not provided, ask which environment. - `local` → env file: `.env.supabase` - `dev` → env file: `.env.cloud.dev` - `prod` → env file: `.env.cloud` Additional optional parameters (ask if not provided, or use defaults): - **Sector count**: n
devops
# NPC Runs an autonomous AI task agent as a game character. Resolves a character name to its UUID, then launches the `npc-run` script which connects to the game server and executes the given task using a Pipecat + Gemini LLM pipeline. ## Parameters - **character_name** (required): The character's display name (e.g. `JOETRADER`). Passed as the argument to `/npc`. - **task** (required): A natural language description of what the character should do (e.g. "Explore and find 5 new sectors"). If `
data-ai
# Run Database Migration Applies pending Supabase migrations to the local or production database. This skill is strictly additive — it only applies new migrations and NEVER resets, truncates, or drops existing data. ## Safety rules — READ BEFORE PROCEEDING **You MUST follow every rule below. No exceptions.** 1. **NEVER** run `supabase db reset`, `supabase db reset --linked`, or any command that drops/recreates the database. 2. **NEVER** run `DROP TABLE`, `DROP SCHEMA`, `TRUNCATE`, or `DELETE