Initial spike on the project (via Claude)

Add per-instance stop.sh so one person's shutdown cannot kill another's game master

Stopping an instance meant `pkill -f spike-webswing/start.sh`, which matches every instance on the machine - so shutting down a test run also killed a live game someone else was playing. start.sh now publishes results/<instance>.pid recording the script PID and the process group ids of its two children (both started with setsid, so PID == PGID and they can be signalled as a group). The file is removed on clean shutdown. stop.sh takes an instance name and signals only those groups. It stops the script first so its EXIT trap does not race, then reaps the children directly in case the script had already died. With no matching PID file it lists the instances that do have one. Verified: with default (8080/8850) and claude (8090/8860) both running, `stop.sh claude` left the default instance serving HTTP 200 and untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>


+75
4 changed files