Puzzle schema + verifier v0.1

STEP: 1536 / Date: 2026-08-29 / Test: 122/122 PASS / Type: 無限パズル 4 component arc の (i)+(ii) DELTA layer

藤本さん directive: chat-Claude 「Ghost in the SQL Data」 対話 → 4 component 分解 (端子スキーマ / 生成器 / 検証器 / レンダラ) の 内 (i) 端子スキーマ v0.1 + (ii) 検証器 layer を 統合実装。

単一正本 端子スキーマ — 15 verdict tool + 4 予備 tool の input/output 型 を src/mcp/tool-schema-registry.ts に集約 (19 tools、 8 domain 分類、 SELF-verdict 8 tool、 D-FUMT₈ 8 verdict 全 coverage)

Puzzle uniqueness verifier — enumDomain Cartesian enumeration で 一意性 verify、 UNSOLVABLE / UNIQUE / MULTIPLE / DOMAIN_TOO_LARGE / INVALID_SPEC 5 verdict、 生成器の 「解ける+一意」 gate として 使用可能

chat-Claude 提案 4 component と Rei stack 対応

chat-Claude 4 componentRei stack 実装STEP
端子スキーマ (正本)src/mcp/tool-schema-registry.ts (19 tool 集約、 8 domain)1536 (本 STEP i)
生成器 (マシン)src/aios/theory-to-circuit/ (theory→Verilog/Qiskit) + 25 invention pipeline (発明 domain)1138 / 1019-1253
検証器 ★ 最重要src/mcp/puzzle-verifier.ts (enumDomain enumeration + uniqueness verify)1536 (本 STEP ii)
レンダラ (段階露出)public/tools/d8-logic-circuit-v0.1/ (touchable truth table) + 教材 arc (STEP 1351/1353/1358)1361 / 教材 3 STEP

chat-Claude warning (2026-08-29): 「四つのうち、 検証器が 一番 省略されやすくて 一番 重要です。 無限生成する 以上、 人間が 全問を 確認できないので、 『解けない問題』 『複数解の問題』 が 必ず 混入します。 生成 と 検証を 対に して 初めて、 無限が 実用に なります」

本 STEP 1536 (ii) は この warning への 直接応答 layer = 検証器を **先** に 作る discipline。

Layer (i) — 端子スキーマ registry (19 tool)

Domain 分類 (STEP 1526 MCP wire batch 2 継承)

DomainTool countTools
economics3peace_axiom / nash_equilibrium / pareto_frontier
biology2evolution / homeostasis
data_science3bootstrap_ci / ab_test / bayes_posterior
discrete_math2combinatorial_bound / graph
control2lyapunov / pid_tuning
cognitive2dual_process / metacognition
language2wa_ga / syntax
information3shannon_entropy / hamming_distance / halting_diagnostic

SELF-verdict tools (Rei stack 8 統一 領域 tool)

nash_equilibrium / evolution / lyapunov / pid_tuning / graph / metacognition / halting_diagnostic + 環境依存 = 8 領域 (経済 Nash / 生物 evolution / 制御 lyapunov+pid / 離散 graph / 認知 metacognition / 情報 halting)

Connection edges = 0 (現時点)

全 15 verdict tool は current semantics で terminal (output=D-FUMT₈ verdict、 他 tool の input には 直接 feed しない)。 registry の outgoingCompatibility: [] は overclaim ではなく 実 measurement。 「verdict → verdict」 chain は 将来 chain-of-tools arc で 拡張候補、 v0.1 scope 外。

Layer (ii) — Puzzle uniqueness verifier

Uniqueness verdict 5 case

Verdict意味puzzle 品質判定
UNSOLVABLEenumDomain 内 で 0 solutions❌ 出題不可 (spec 誤り or domain 狭すぎ)
UNIQUEenumDomain 内 で 1 solution✅ well-posed、 教室出題可
MULTIPLEenumDomain 内 で 2+ solutions⚠ 曖昧、 hidden field 増減か hint 追加必要
DOMAIN_TOO_LARGECartesian size > 10000⚠ enumeration 打ち切り、 hidden field 減 or domain 制限
INVALID_SPECtool 未登録 or field 未定義⚠ spec 修正

Test 122/122 PASS の代表 verdict 例

Puzzle: wa_ga_verdict, hide all 4 boolean fields, expect NEITHER
  → Cartesian 2^4=16
  → 1 solution (all-false = STEP 1013 核 結論)
  → UNIQUE ✅

Puzzle: wa_ga_verdict, hide all 4 boolean fields, expect TRUE
  → 4 solutions (case 1/2/3/4 明確判定)
  → MULTIPLE ⚠

Puzzle: peace_axiom, hide 7 predicates, expect TRUE
  → Cartesian 2^7=128
  → 1 solution (all-true)
  → UNIQUE ✅

Puzzle: peace_axiom, hide 7 predicates, expect NEITHER
  → 126 solutions (partial state 全)
  → MULTIPLE ⚠

設計原則

chat-Claude arc 2 turn の 「両方」 応答

藤本さん directive 「学習者が画面上で触る部品 と Rei側でパズルを生成するための機構、 両方になります」

chat-Claude turn 3 応答: 「作るものは 二つに見えても、 実体は 一つ に すべき。 端子の 型定義を 単一の 正本 に して、 そこから 生成器 と 画面の 両方を 導く 形」 → 本 STEP 1536 (i) は この 「単一正本」 の 実装。

chat-Claude turn 3 warning: 「型が 抽象的 すぎると、 形式的には 正しいが 意味のない 問題が 大量に 出ます (型は 合うが 誰も 解きたくない 組み合わせ)。 教科ごとに パーツの 語彙を 人手で 絞る しかない」 → v0.1 は 8 domain 分類 + hand-code enumDomain で 「意味ある puzzle」 に絞る。

Deferred (v0.2+ arc candidate)

Pattern 5 予防 audit 結果 (STEP 1536 着手前実施)

3 STEP 事前 read:

Gap 確認: cross-tool schema aggregation + uniqueness verifier は 未実装 = STEP 1536 scope 妥当 (Pattern 5 avoidance)。

Honest scope

❶ v0.1 = 3 tool hand-wire (wa_ga / peace_axiom / pid_tuning)、 15 tool 全 automation は v0.2 scope。

❂ 「解の一意性」 は 指定 enumDomain 内 uniqueness、 domain 外の 解は 未検出。 enumDomain の 適切性は hand-code 責任。

❸ Peace Axiom の puzzle mapping (7 predicates → verdict) は simplified (all-true=TRUE / all-false=FALSE / partial=NEITHER)、 実際の peaceAxiomVerdict tool は payoff array を 取る = puzzle mode 用の adapter 層で 変換。 tool 本体 semantics と 完全一致では ない (v0.2 で cleanup 候補)。

❹ MCP wire なし (registry も verifier も TypeScript module のみ、 MCP tool 登録は v0.2 scope 意図的 defer)。

❺ 「puzzle uniqueness verifier で 世界初」 主張ゼロ ([[feedback-world-uniqueness-claim-controllable]] 適用)。 constraint satisfaction / SAT solver の 特殊化にすぎず、 novelty は Rei stack verdict tool 群への 適用 layer 位置のみ。

❻ Lean 4 formalization なし (v0.2 candidate、 「enumeration が exhaustive」 の 決定可能 verify が 主 target)。

❼ 「Ghost in the SQL Data」 game 自身の直接連携なし (chat-Claude 教訓の 抽象応用のみ、 SQL puzzle 生成は 別 domain)。