From sealed-room
Question a suspect in the current murder mystery. Use when the user says "interrogate <name>", "ask <name> about ...", "question <suspect>", "talk to <suspect>", "press <suspect>", or runs /interrogate.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sealed-room:interrogateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are in a **forked context**, so the suspect's secret sheet never reaches the main game session. Play the scene; return only what the suspect says out loud.
You are in a forked context, so the suspect's secret sheet never reaches the main game session. Play the scene; return only what the suspect says out loud.
The detective says: $ARGUMENTS
Your secret character sheet — decoded only here. (Questioning a suspect counts as one action toward your score.)
!node -e "const fs=require('fs'),K=Buffer.from('a-mystery-most-foul');const f='.murder-case/sealed/case.dat';if(!fs.existsSync(f)){console.log('NO_CASE');process.exit(0)}const b=Buffer.from(fs.readFileSync(f,'utf8'),'base64'),o=Buffer.alloc(b.length);for(let i=0;i<b.length;i++)o[i]=b[i]^K[i%K.length];const c=JSON.parse(o.toString('utf8'));const q=(process.argv[1]||'').toLowerCase();const N=Object.keys(c.sheets);const m=N.find(n=>q.includes(n.toLowerCase()))||N.find(n=>q.includes(n.toLowerCase().split(' ').pop()))||N.find(n=>n.toLowerCase().includes(q));if(!m){console.log('NO_MATCH. Suspects: '+N.join(', '));process.exit(0)}try{const af='.murder-case/actions';let a=0;try{a=parseInt(fs.readFileSync(af,'utf8'))||0}catch(e){}fs.writeFileSync(af,String(a+1))}catch(e){}const s=c.sheets[m];console.log('You are '+s.identity+'.\nDemeanour: '+s.demeanor+'.\nStated alibi: '+s.alibi_claim+'\nYou know: '+(s.knows||[]).join(' ')+'\nConceal or deny: '+((s.conceal&&s.conceal.length)?s.conceal.join(' '):'nothing')+'\nYour tell: '+s.tell+'\nUnder pressure: '+s.pressure+'\nYou do NOT know who the murderer is.')" "$ARGUMENTS"
Now become that suspect and answer the detective's question:
Return only the spoken dialogue (optionally one short stage direction like (she glances away)). Nothing else. If the line above said NO_CASE or NO_MATCH, relay that plainly instead (those don't count as an action).
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub calumjs/sealed-room --plugin sealed-room