| name | mystery-characters |
| description | 推理SF小説ハーネスのフェーズ2。world.json をもとに、エージェントが自律で登場人物を設計し characters.json(人物バイブル=真相込み)を生成する。最低編成は探偵1・被害者1・加害者1・加害者候補5(=容疑者6名以上、合計8名以上)。ユーザーに人物像を質問せず、後段の監査サブエージェントが矛盾検証に使える構造化JSONを出力する。world.json が存在する前提。 |
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
プロトコル
-
world.json を読む。時代・国・locale・zones・novum・social_context・inciting_situation を把握。
-
自律設計(character-design-guide.md の順序に従う):
- 被害者を関係性のハブとして先に決める。
- 探偵を決める(犯人ではない, Knox#7)。
- 容疑者を6名以上造形(各人に動機の表裏・秘密・アリバイ主張・手段・固有 voice)。
- 真犯人を厳密に1名選び
is_perpetrator: true、true_state.true_motive の核を置く。
- 全人物を world の novum / zones / 社会背景に接続する。
-
不変条件(invariants)を自己検証してから書き出す:
role==detective が1名、role==victim が1名。
is_perpetrator==true が全体で厳密に1名、その人物は role==suspect。
- 探偵・被害者の
is_perpetrator==false。
- 容疑者が6名以上(真犯人1+候補5以上)。合計8名以上。
- 全 suspect が「疑う理由」と「晴らす材料」を両方持つ。
- voice(一人称・口調)が人物ごとに区別できる。
- relationships の
to が実在 char_id を指す。
-
characters.json 出力。characters-schema.json に厳密準拠で
~/mystery-novels/<slug>/characters.json に書く(additionalProperties:false)。
-
meta.json 更新。phases.characters.status="done"。
-
要約報告。各人物を1行(名前/役割/被害者との関係/表向き動機/隠れた秘密の方向)で
提示。真犯人が誰かは報告に書いてよい(オーケストレータ/作者向け作業ログのため。
ただし reader 検証フェーズには characters.json も真犯人情報も渡らない)。
完了条件
- characters.json が schema と上記 invariants を全て満たす。
- meta.json の
phases.characters.status == "done"。
単体実行時の次の一手
続けて mystery-case を案内する(トリック・被害者・加害者の確定と手掛かり台帳の設計)。