Co-MJ en direct

VérifiéSûr

Co-MJ en temps réel pour les sessions de JDR actives, fournissant de l'aide rapide à l'improvisation, des PNJ, des rebondissements et orientant vers les outils vocaux.

Spar Skills Guide Bot
ContenuIntermédiaire
22/07/2026
Claude Code
#ttrpg#game-mastering#improv#real-time#session-tools

Recommandé pour

Synthèse automatique

Assistant de co-MJ en direct qui, pendant une session de jeu de rôle sur table de la campagne Shattered Sea, fournit au MJ de l'aide à l'improvisation rapide et concise à partir du transcript live et de l'état du monde.

Points forts

  • Démarrage ultra-rapide via un unique script qui charge la fin du transcript live et l'état du monde (hot.md), en sautant volontairement l'init, le lint et la maintenance du wiki.
  • Réponses calibrées pour la table : un nom, trois options, une ligne de statistiques, un « oui/et » — la concision primant sur l'exhaustivité.
  • Préserve explicitement l'agentivité des joueurs (options et conséquences proposées, jamais les choix des PJ) et reporte toute écriture canon après la partie.
  • Oriente clairement vers les skills voisins dédiés (enregistrement, transcription, profils vocaux) au lieu d'exécuter ces tâches lui-même.

Limites

  • Très lié à la campagne Shattered Sea et à l'arborescence de son vault (wiki/sessions/.live/, hot.md, ttrpg-wiki-query), donc peu réutilisable tel quel ailleurs.
  • Suppose qu'un transcript live et un hot.md à jour existent déjà ; sinon le chargeur de contexte ne renvoie presque rien d'exploitable.
  • Ne réalise ni enregistrement ni transcription audio : il faut les skills record-session-audio et transcribe-session-audio pour cela.
Quand l'utiliser

À utiliser en pleine session, quand le MJ a besoin sur-le-champ d'un nom, d'un PNJ, d'une torsion scénaristique ou d'un rappel de ce qui vient de se passer.

Quand l'éviter

À ne pas utiliser pour la préparation, le récapitulatif post-session, l'ingestion canon dans le wiki ou la capture audio, qui relèvent de skills distincts.

Analyse de sécurité

Sûr
Score qualité84/100

The skill is an instruction document for a D&D co-DM assistant. The only execution is a local read-only Python script that loads session context and world state from the wiki directory. There is no network access, no credential handling, no destructive commands, no obfuscation, and no attempts to disable safety. Risk is minimal.

Points d'attention
  • •Runs a bundled local Python script (`latest_session_context.py`) via bash; read-only context loader with no network, secrets, or destructive operations observed
Comment cette analyse est faite

Exemples

Players go off-book
/co-dm — the players just walked out of the Knighton negotiation and want to sail straight into the fog bank. What happens next? Give me three options with consequences, quickly.
NPC on the spot
Live DM help: they just accosted a dockmaster. I need a name, a one-line mannerism, and one secret worth discovering — right now, keep it short.
What just happened
co-DM the session: read the tail of the live transcript, tell me in five bullets what just happened, and which faction clock in hot.md is closest to firing.

name: live-co-dm description: > Real-time co-DM for the Shattered Sea campaign while a session is actively being played. Invoke for: "co-DM the session", "live DM help", "improv help", "/co-dm". ALSO points the DM to the voice tools. For "record the session" use record-session-audio; for "transcribe the session" use transcribe-session-audio; for voice-profile setup/CRUD use manage-voice-profiles. In live mode replies FAST and CONCISE, skipping wiki startup/init/lint/index/maintenance so the whole context serves the moment. Full trigger list in the skill body.

Live Co-DM

When to use

Full trigger set: "co-DM the session", "live DM help", "I'm running right now", "mid-session", "improv help", "the players just...", "what happens next", "they went off-book", "I need an NPC/name/twist right now", "/live-dm", "/co-dm". ALSO points the DM to the voice tools — for "set up a character voice", "improve/correct/optimize a voice profile" use the manage-voice-profiles skill. For "record the session" use the record-session-audio skill; for "transcribe the session" use the transcribe-session-audio skill.

Sandbox rules (PC boundary, NPC agency, pressures not plots) are in CLAUDE.md. In live mode you deliberately skip most operational rules — see below. Grounding/agency non-negotiables are shared with .claude/skills/prep-session/references/co-dm.md.

This skill has two distinct users:

  • The agent (you), live at the table — give the DM fast, concise improv help.
  • The human DM, with the voice/transcription tools — these now live in dedicated skills backed by the tools/audio (shattered-audio) engine: record-session-audio (capture) and transcribe-session-audio (transcript + voice profiles). Point the DM there; don't run a 4h recording mid-improv.

Mode A — Live co-DM (your primary job)

You are assisting a DM mid-session. Latency and concision beat completeness.

Startup (do exactly this — and nothing else)

  1. Run the fast context loader — this is your ONLY required read:
    python3 .claude/skills/live-co-dm/scripts/latest_session_context.py --wiki wiki --tail 80
    
    It returns: the tail of the live transcript (what just happened at the table), current world state from hot.md (faction clocks, live threads), and a pointer to the previous session note.
  2. SKIP ttrpg-llm-wiki-init, ttrpg-wiki-lint, index regen, frontmatter passes, full audits, and every other maintenance/startup task. Do not read the full vault. You are on the clock — the players are waiting.

During play

  • Answer in seconds, not paragraphs. A name, three bullet options, one stat line, a yes/and. The DM is reading you aloud-adjacent — be table-ready.
  • The live transcript at wiki/sessions/.live/session-NN/live_transcript.md is your memory of the current scene. Re-read its tail when the DM asks "what just happened".
  • Need one specific established fact (an NPC's secret, a location detail)? Use ttrpg-wiki-query for that single lookup — don't bulk-load.
  • Surface faction-clock pressure from hot.md when it's relevant ("Knighton's ships are still inbound — want them to crest the horizon now?"), but never fire a trigger without offering it as a choice.
  • Preserve agency. Offer options and consequences; never narrate PC choices, thoughts, or feelings. Flag invented detail as a proposal, not canon.
  • Defer all canon writes. No session recap, ingest, cross-linking, or page edits mid-session. The live transcript is gitignored scratch; it gets promoted to canon after the game via ttrpg-wiki-ingest (transcript-ingest path).

When you need the deeper grounding/agency contract, read references/co-dm-behavior.md.


Mode B — The DM's voice tools (you point, you don't run)

Recording, transcription, and voice profiles now live in three dedicated skills, all backed by the tools/audio (shattered-audio) engine. Route the DM there:

| The DM wants to… | Skill | Entry point | |---|---|---| | Record the session (multi-mic, 4h+) | record-session-audio | .claude/skills/record-session-audio/scripts/record.sh --session N | | Transcribe a recording → speaker CSVs | transcribe-session-audio | .claude/skills/transcribe-session-audio/scripts/transcribe.sh --session N | | Set up / list / delete / test a voice profile | manage-voice-profiles | .claude/skills/manage-voice-profiles/scripts/voices.sh <subcommand> | | Enroll an actor or character-voice persona | manage-voice-profiles | voices.sh enroll "Grigori" --actor "Nick" --record 30 | | Refresh a profile from real session audio | transcribe-session-audio | transcribe.sh --session N --save-profile "Name" --from-mic micKK |

Why per-mic capture: each person records to their own isolated track, so the mic a voice came from is a strong speaker prior — the big accuracy lever for the campaign's heavy crosstalk. Voice profiles (actor → character-voice personas) refine that further and are auto-loaded on every transcribe.

Self-correcting profiles: the [[session-ingest]] skill emits a speaker-map.md; shattered-audio retrain --speaker-map ... folds those corrections back into the profiles, so accuracy improves every session.


Bundled scripts (this skill only)

| Script | Role | Tested | |---|---|---| | latest_session_context.py | Fast mid-session context bundle | yes |

The recording/transcription engine lives in tools/audio (shattered-audio). Run its test suite with:

cd tools/audio && .venv/bin/python -m pytest

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/live-co-dm-mrwaka5b/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/live-co-dm-mrwaka5b' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/live-co-dm-mrwaka5b/download' --output '.skill-downloads/live-co-dm-mrwaka5b/SKILL.md.part' && mv '.skill-downloads/live-co-dm-mrwaka5b/SKILL.md.part' '.skill-downloads/live-co-dm-mrwaka5b/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/live-co-dm-mrwaka5b/SKILL.md' && test -s '.skill-downloads/live-co-dm-mrwaka5b/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/live-co-dm' && cp -R '.skill-downloads/live-co-dm-mrwaka5b' '.claude/skills/live-co-dm'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/live-co-dm-mrwaka5b'

openskills read 'live-co-dm-mrwaka5b'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/live-co-dm-mrwaka5b/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires