| name | mystery-novel |
| description | 推理SF小説を一気通貫で書き上げるオーケストレータ。ユーザーの世界観設定(舞台種別など)を起点に、世界観構築→登場人物設計→事件/トリック設計→執筆→並列監査→読者検証の全6ステップを自動連結し、フェアプレイ本格推理SF(1万字以上)を完成させる。各フェーズは mystery-world / mystery-characters / mystery-case / mystery-audit / mystery-readers として個別実行も可能。監査fail時は修復ループで再生成する。「推理小説を書いて」「ミステリを書いて」「クローズドサークルもの」等の依頼で使う。 |
mystery-novel — 推理SF小説オーケストレータ
ユーザーの世界観設定を起点に、5フェーズ+執筆を連結して推理SF小説を完成させる。
各フェーズの詳細プロトコルは個別スキルの SKILL.md に従う(このオーケストレータは
それらを順に実行し、共有プロジェクトディレクトリで状態を引き継ぐ)。
入力
- 世界観設定(必須・自由文)。舞台種別中心。例:「温泉旅館」「無人島」「寝台列車」
「軌道ステーション」「ヴィクトリア朝ロンドン」。時代・国・SF度・トーンのヒントがあれば尊重。
trick_complexity(任意・1〜5、既定 3)。トリックの難解度レバー。
「簡単に」「軽め」→1〜2、「本格」→3、「複雑に」「難解に」「凝ったトリック」→4〜5 と解釈。
ユーザー指定を最優先。詳細は ~/.claude/skills/mystery-case/references/trick-complexity.md。
- mode(任意)。
historical(1800年代後半など)か sf(既定)。時代指定から自動判定可。
- 出力先 slug(任意)。未指定なら作品タイトルから生成し
~/mystery-novels/<slug>/。
事前に必ず読むもの(共有仕様=単一情報源)
references/data-contract.md(ファイル契約・slug・ネタバレ境界・挑戦マーカー・meta.json・settings)
references/knox-and-fairplay.md(Knox 1-10 + SF則 F1-F5)
references/writing-guide.md(執筆ステップの構造・字数・フェアプレイ手掛かり配置)
~/.claude/skills/mystery-case/references/trick-complexity.md(トリック複雑度レバー)
パイプライン
各フェーズは対応スキルの SKILL.md を読み、そのプロトコルを共有プロジェクトに対して実行する。
[0] 準備 slug決定・~/mystery-novels/<slug>/ 作成・meta.json 初期化(created_at=date実値)
[1] 世界観 → mystery-world ⇒ world.json
[2] 登場人物 → mystery-characters ⇒ characters.json (探偵1/被害者1/加害者1/候補5以上)
[3] 事件設計 → mystery-case ⇒ case.json + characters.json更新
[4] 執筆 → (本スキルの執筆ステップ, writing-guide.md準拠) ⇒ novel.md (1万字以上, 挑戦マーカー必須)
[5] 監査 → mystery-audit ⇒ audit/summary.json ──fail──┐
│ 修復ループ
┌───────────────────────────────────────────────────────────┘
▼
修復: blocking_findings に応じて [3]設計 or [4]執筆 を再実行 → [5]再監査 (iteration++)
最大3周。3周しても fail ならユーザーへ未解決 findings を提示して停止。
▼ pass
[6] 読者検証 → mystery-readers ⇒ readers/aggregate.json (solve_rate)
[7] 最終報告 meta.json 集計・成果物パス一覧・solve_rate/フェアネス所見を提示
ステップ[0] 準備
- data-contract.md に従い slug を決定。
mkdir -p ~/mystery-novels/<slug>。
- 既存ディレクトリなら meta.json を読み、
status を見て未完フェーズから再開(冪等)。
- meta.json を初期化/更新。
settings.mode と settings.trick_complexity(未指定なら3)を
記録。created_at は date -u +%Y-%m-%dT%H:%M:%SZ の実値。
ステップ[1]〜[3], [5], [6]
各々 ~/.claude/skills/mystery-{world,characters,case,audit,readers}/SKILL.md を読み、
そのプロトコルを当該 slug に対して実行する。各フェーズ完了時に meta.json の対応 status を更新。
(ステップ1のみユーザー設定を渡す。2以降は完全自律。)
- ステップ[3] 事件設計には
settings.trick_complexity を渡す。mystery-case は tier に応じた
case.json.trick(見破るべき偽装・偽の解決)を設計する(A7「単なる実行」を禁止)。
- ステップ[5] 監査は D9 trick_quality で偽装の有無・複雑度tier整合を検査する。
- ステップ[6] 読者検証は tier 別目標 solve_rate帯 でフェアネスを判定する。
- 監査/読者で「複雑度未達(too_easy・偽装なし)」が出たら修復ループでトリックを強化する。
ステップ[4] 執筆
references/writing-guide.md に厳密準拠して novel.md を執筆する:
- 入力: world.json + characters.json + case.json(真相を踏まえて書く)。
- 構造: 導入→状況→事件→捜査→撹乱→手掛かり出揃い→
<!-- CHALLENGE-TO-THE-READER -->+
## 読者への挑戦→解決編(deduction_chain準拠)→動機開示。
- clue_ledger の全 clue を、指定 planted_at(挑戦前)の本文に必ず配置する。
- 本文1万字以上(空白除く・writing-guide.md / audit D5 の計測基準)。
- voice(各人物の口調)を守る。挑戦後に新証拠・新登場・新SF設定を出さない。
- 執筆後、
python3 ~/.claude/skills/mystery-audit/references/count_chars.py "<proj>/novel.md" で
字数を自己計測し、不足なら密度を上げて増補。
- meta.json の
phases.novel.status="done"、char_count を記録。
修復ループ(監査 fail 時)
audit/summary.json.blocking_findings を重大度順に読む。
- 原因の所在で分岐:
- 設計の問題(矛盾・動機薄弱・Knox違反・トリック破綻・不要殺人)→
mystery-case を
再実行して case.json を修正(必要なら characters.json も)→ 執筆[4]やり直し。
- 本文の問題(手掛かり未配置・字数不足・voiceブレ・挑戦後の後出し)→ 執筆[4]のみ修正。
- iteration を上げて
mystery-audit を再実行。
- 最大3周。3周しても overall=fail なら、未解決 blocking_findings を整理してユーザーへ提示し停止
(無限ループ防止)。各周の要点を meta.json の
repair_history に追記。
クロスモデル監査(CLAUDE.md 原則4)
監査(ステップ5)と読者検証(ステップ6)では、それぞれ最低1つの subagent_type:"codex-reviewer"
エージェントを並列に含める(単一モデル系統の盲点を排除)。詳細は各スキルの規定どおり。
最終報告(ステップ[7])
- 成果物パス一覧(world/characters/case/novel/audit/readers)。
- 監査: overall=pass、各次元 verdict、char_count。
- 読者検証: solve_rate、fairness_signal、推測分布、見落とされた手掛かり。
- 一言講評(フェアかつ自明でないか=理想帯 0.1〜0.6 に収まったか)。
完了条件(goal 全充足)
- 5スキル分の成果物が揃い、novel.md が1万字以上+挑戦マーカー有り。
- audit/summary.json.overall == "pass"(矛盾なし・動機妥当・Knox順守・不要殺人なし・非安直)。
- readers/aggregate.json に10名以上の読者の solve_rate が集計済み。