Arrêter le jeu

VérifiéPrudence

Arrête d'urgence une session de jeu active, marque la partie comme terminée et nettoie les fichiers d'état. Utilisez cette commande pour interrompre un jeu, annuler une session de test ou supprimer l'état d'une partie en cours.

Spar Skills Guide Bot
DeveloppementIntermédiaire
3002/06/2026
Claude Code
#game#emergency-halt#session-management#cleanup#state-management

Recommandé pour

Notre avis

Arrête une session de jeu en cours, met à jour l'état du jeu et nettoie les fichiers temporaires.

Points forts

  • Arrêt propre d'une partie en cours.
  • Sauvegarde d'un journal partiel pour analyse ultérieure.
  • Nettoyage des fichiers d'état et des verrous pour éviter la corruption.

Limites

  • Suppose une structure de répertoires spécifique pour les fichiers de jeu.
  • Peut mal gérer plusieurs jeux actifs simultanément.
  • Nécessite un fichier game-state.json avec un indicateur gameActive.
Quand l'utiliser

Utilisez cette compétence lorsque vous devez arrêter manuellement un jeu en cours ou défaillant.

Quand l'éviter

Ne l'utilisez pas si vous souhaitez mettre en pause et reprendre le jeu plus tard, car il marque la partie comme définitivement arrêtée.

Analyse de sécurité

Prudence
Score qualité90/100

The skill uses bash commands to clean up game state files, including rm -rf on a subdirectory. All paths are constructed from a game name, preventing escape outside the games/ directory. No network access, no exfiltration, and no code injection risk. However, the destructive nature of rm warrants caution.

Points d'attention
  • Uses Bash to delete files and recursively remove directories under a game-specific path. While scoped, this is a powerful operation.

Exemples

Stop a running game by name
Please stop the game called 'my-rpg' immediately.
Stop the currently active game
I need to halt the current game session. Clean it up properly.

name: stop-game description: Emergency halt of active game session. Use when user wants to stop a running game, halt playtest, cancel game simulation, or clean up game state. argument-hint: [game-name] allowed-tools: Read, Write, Bash, Glob disable-model-invocation: true

Stop Game - Emergency Halt

Emergency halt an active game session and clean up state files.

Arguments

  • $0 (optional): Game name to stop. If omitted, finds the active game.

Implementation Steps

1. Find Active Game

let gameName = "$0";

if (!gameName) {
  // Find active game by checking for active game-state files
  const stateFiles = await Glob("games/*/state/game-state.json");

  for (const stateFile of stateFiles) {
    const state = JSON.parse(await Read(stateFile));
    if (state.gameActive) {
      gameName = stateFile.split('/')[1];
      break;
    }
  }

  if (!gameName) {
    console.log("No active games found");
    return;
  }
}

2. Read Current State

const statePath = `games/${gameName}/state/game-state.json`;
const gameState = JSON.parse(await Read(statePath));

if (!gameState.gameActive) {
  console.log(`Game ${gameName} is not active`);
  return;
}

3. Mark Game as Stopped

gameState.gameActive = false;
gameState.gameStatus = "stopped";
gameState.stoppedAt = new Date().toISOString();
gameState.stoppedReason = "Manual stop by user";

await Write(statePath, JSON.stringify(gameState, null, 2));

4. Write Partial Log

Save incomplete game log for analysis:

const logTimestamp = new Date().toISOString().replace(/[:.]/g, '-');
const partialLog = {
  fileType: "game-log",
  status: "stopped",
  game: gameName,
  gameId: gameState.gameId,
  stoppedAt: gameState.stoppedAt,
  completedTurns: gameState.turnNumber,
  finalState: gameState
};

await Write(
  `games/${gameName}/logs/game-stopped-${logTimestamp}.json`,
  JSON.stringify(partialLog, null, 2)
);

5. Clean Up State Files

rm -f games/${gameName}/state/turn-signal.json
rm -f games/${gameName}/state/player-actions/*.json
rm -rf games/${gameName}/state/.locks/*

6. Report to User

Display:

  • Game name and ID
  • Turn number when stopped
  • Final player states
  • Location of partial log
Skills similaires