.claude/skills/npc/SKILL.md
# 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 `
npx skillsauth add pipecat-ai/gradient-bang .claude/skills/npcInstall 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.
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.
JOETRADER). Passed as the argument to /npc.If character_name is not provided as an argument, ask the user for it. Always ask the user for the task description.
set -a && source .env.supabase && set +a
Look up the character by name using Supabase REST:
curl -s "${SUPABASE_URL}/rest/v1/characters?name=eq.<character_name>&select=character_id,name" \
-H "apikey: ${SUPABASE_SERVICE_ROLE_KEY}" \
-H "Authorization: Bearer ${SUPABASE_SERVICE_ROLE_KEY}"
This returns a JSON array. Extract the character_id from the first result. If no results are returned, report that the character was not found and stop.
Run the npc-run script with the resolved character ID and the task. Redirect all output to a log file (do NOT use tee):
uv run npc-run <character_id> "<task>" > logs/npc-<character_name>.log 2>&1 &
NPC_PID=$!
echo "NPC agent started with PID $NPC_PID, logging to logs/npc-<character_name>.log"
Run the process in the background so it doesn't block the conversation.
Show the user:
tail -f logs/npc-<character_name>.logkill <PID>GOOGLE_API_KEY and SUPABASE_URL must be set (they come from .env.supabase).npx supabase functions serve --workdir deployment --no-verify-jwt --env-file .env.supabasefinished() when the task is complete.tee. Use tail, head, or grep to inspect the log.--ship-id flag manually if needed.testing
# 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
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
testing
# Load Quest Data Loads quest definitions from JSON files in `quest-data/` into Supabase. ## Parameters Ask the user for: - **Mode**: `upsert` (default) or `force` (deletes all existing quest data first) - **Dry run**: whether to validate only without writing (default: no) ## Steps ### 1. Source environment variables ```bash set -a && source .env.supabase && set +a ``` ### 2. Run the quest loader Upsert mode (default — updates existing quests, inserts new ones): ```bash uv run -m gradien