ushironoko/novel-harness-skills/mystery-characters

Claude Code and agent skill by ushironoko/novel-harness-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

推理SF小説ハーネスのフェーズ2。world.json をもとに、エージェントが自律で登場人物を設計し characters.json(人物バイブル=真相込み)を生成する。最低編成は探偵1・被害者1・加害者1・加害者候補5(=容疑者6名以上、合計8名以上)。因果ループ等で他時代・遠隔地の関係者が時系列に現れる場合は role:"offstage" で追加登録する(容疑者数には数えない)。ユーザーに人物像を質問せず、後段の監査サブエージェントが矛盾検証に使える構造化JSONを出力する。world.json が存在する前提。

Install

npx vskill@latest install ushironoko/novel-harness-skills/mystery-characters

SKILL.md

mystery-characters — 登場人物設計(フェーズ2)

world.json を入力に、エージェント自律で登場人物を設計し characters.json を生成する。 これは後続フェーズ(事件設計・監査・執筆)が参照する人物バイブルであり、真相 (is_perpetrator・真の動機・真のアリバイ)を含む。ユーザーに人物像を質問しない。

入力

  • ~/mystery-novels/<slug>/world.json(必須)
  • 出力先 slug(オーケストレータから渡る。単体実行時は最新/指定プロジェクトを使う)

事前に必ず読むもの

  • ~/.claude/skills/mystery-novel/references/data-contract.md(ネタバレ境界: characters.json は reader に渡さない)
  • ~/.claude/skills/mystery-novel/references/knox-and-fairplay.md(Knox#1/#7/#9 が人物設計に効く)
  • ~/.claude/skills/mystery-characters/references/characters-schema.json(出力スキーマ)
  • ~/.claude/skills/mystery-characters/references/character-design-guide.md(自律設計の手順)
  • 対象プロジェクトの world.json

プロトコル

  1. world.json を読む。時代・国・locale・zones・novum・social_context・inciting_situation を把握。
  1. 自律設計(character-design-guide.md の順序に従う):
  • 被害者を関係性のハブとして先に決める。
  • 探偵を決める(犯人ではない, Knox#7)。
  • 容疑者を6名以上造形(各人に動機の表裏・秘密・アリバイ主張・手段・固有 voice)。
  • 真犯人を厳密に1名選び is_perpetrator: true、true_state.true_motive の核を置く。
  • 全人物を world の novum / zones / 社会背景に接続する。
  • 舞台外の人物(`role: "offstage"`・任意): 事件の容疑者ではないが、case.timeline や

causal_loop.loop_events に actor として現れる人物(他時代・遠隔地の関係者)がいる場合、 ここに登録する。causal_loop で複数時代にまたがる作品では、過去/未来側の事象の actor を 必ず offstage として登録すること(登録しないと監査が「characters.json に無い actor」として 矛盾検出する)。offstage は id / name / role / is_perpetrator:false / era_note (どの時代・場所の人物で、なぜ本作の時系列に現れるか)だけでよく、 voice や alibi_claim は不要。

  1. 不変条件(invariants)を自己検証してから書き出す:
  • role==detective が1名、role==victim が1名。
  • is_perpetrator==true が全体で厳密に1名、その人物は role==suspect。
  • 探偵・被害者・offstage の is_perpetrator==false。
  • 容疑者が6名以上(真犯人1+候補5以上)。**role==offstage は容疑者数にも

「合計8名以上」の勘定にも含めない**(offstage を除いて8名以上)。

  • 全 suspect が「疑う理由」と「晴らす材料」を両方持つ。
  • voice(一人称・口調)が人物ごとに区別できる(offstage は voice 不要)。
  • relationships の to が実在 char_id を指す。
  • 全 offstage に era_note があり、case.timeline か causal_loop.loop_events の

いずれかに actor として実在する(どこにも現れない offstage は置かない)。

  1. characters.json 出力。characters-schema.json に厳密準拠で

~/mystery-novels/<slug>/characters.json に書く(additionalProperties:false)。

  1. meta.json 更新。phases.characters.status="done"。
  1. 要約報告。各人物を1行(名前/役割/被害者との関係/表向き動機/隠れた秘密の方向)で

提示。真犯人が誰かは報告に書いてよい(オーケストレータ/作者向け作業ログのため。 ただし reader 検証フェーズには characters.json も真犯人情報も渡らない)。

完了条件

  • characters.json が schema と上記 invariants を全て満たす。
  • meta.json の phases.characters.status == "done"。

単体実行時の次の一手

続けて mystery-case を案内する(トリック・被害者・加害者の確定と手掛かり台帳の設計)。

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/ushironoko/novel-harness-skills/mystery-characters/badge)](https://verified-skill.com/skills/ushironoko/novel-harness-skills/mystery-characters)

Something wrong with this skill or its page? Tell us.