---
name: project-step1348-benchtop-physics-limits-v06-2026-08-20
description: "benchtop-mcp v0.6.0-alpha = chat-Claude 2026-08-20 turn 「LLM が 単位付き算術で 自信満々に間違える」 対策の 5 physics-limits primitive を SafetyGate と 相補な pre-flight layer として 統合 (bekenstein_bound_bits + landauer_min_energy_j + lloyd_computation_ceiling + operator_space_size + compression_upper_bound)。 私推奨順 (内部 benchtop 先行 → 硬化後 外部化) で実施。 Kolmogorov 命名 siren-family 回避 (K(x) uncomputable 明示 disclaimer)。 benchtop-mcp commit d466808 push 済、 selftest [1]-[20] 全 PASS。"
metadata: 
  node_type: memory
  type: project
  originSessionId: ab253b30-8388-46d4-a786-7cd46db04234
  modified: 2026-08-19T21:46:02.783Z
---

# STEP 1348 — benchtop-mcp v0.6.0-alpha physics-limits pre-flight layer (5 tools) (2026-08-20)

## 契機

chat-Claude 2026-08-20 turn (藤本さん shared) が 4 topics (Gödel階層 + Kolmogorov複雑性 + エントロピー + 8値論理組合せ空間) を コネクタ化する 提案を出し、 chat-Claude が 「コネクタが売れるのは モデルが 苦手なことをやる時だけで、 この 4 つは 性質が 割れている。 ゲーデル階層と コルモゴロフの説明は LLM が単体でそこそこ正しく出せる、 8^64 の桁、 2π R E / ℏ c の 単位換算、 kT ln 2 の 実数値は LLM が 自信満々に間違える 領域」 と 分割設計、 5 tool (bekenstein_bound / landauer_energy / compute_ceiling / operator_space / compression_bound) を 提示。

私 (Claude Code) は 4 verify (法的 ✅ / 8^(8^n) 公式 ✅ / remote MCP 適合 ✅ 但し deploy lag 別問題 / 「LLM benchmark」 主張 未 verify) + 独自視点 (順序反転推奨 = 内部 benchtop v0.6 に pre-flight として 先行統合 → 実運用で 硬化 → 外部 MCP 切り出し) + Kolmogorov 命名 warning 強化 (siren-family pattern) で 回答。

藤本さん 「上記を順番に進めて頂けますか？ あと、 5つのコネクタも制作して下さい」 → 私 「5つのコネクタ」 の 意味を AskUserQuestion で 確認 → 藤本さん 「chat-Claude の 5 tools (1 connector 内)」 選択 → 実装開始。

## 実装 (benchtop-mcp commit d466808)

### 新規 module: `benchtop_physics_limits.py` (~490 行、 stdlib のみ、 pure calc、 状態なし)

5 physical primitive、 全 return dict + `is_upper_bound` / `is_lower_bound` / `is_theoretical_max` flag + citation + honest_scope:

| # | Function | Formula | 定数 | Verify (module selftest) |
|---|---|---|---|---|
| 1 | `bekenstein_bound_bits(R_m, E_J)` | S ≤ 2π R E / (ℏ c ln 2) | Bekenstein 1981, PRD 23:287 | (1 m, 1 J) → 2.867e26 bits ✅ |
| 2 | `landauer_min_energy_j(bits, T_K=300)` | E_min = N k_B T ln 2 | Landauer 1961, IBM J. Res. Dev. 5:183 | (1 bit, 300 K) → 2.871e-21 J = 0.0179 eV ✅ |
| 3 | `lloyd_computation_ceiling(mass_kg)` | rate ≤ 2 m c² / (π ℏ) | Lloyd 2000, Nature 406:1047 + Margolus-Levitin 1998 | (1 kg) → 5.426e50 ops/s = Lloyd 原論文一致 ✅ |
| 4 | `operator_space_size(k, n)` | k^(k^n) | Post 1921 / Rosser 1936 | (8, 2) → input_configs=64 / log10=57.7978 / config_bits=192 ✅ |
| 5 | `compression_upper_bound(N, H, method)` | L ≥ N × H (Shannon 1948) + O(log N) 上界 | Shannon 1948 + Chaitin 1975 (K uncomputable) | (1000, 1.0, shannon) → lower=1000, upper=1010 ✅ |

**module 単体 selftest = 28/28 PASS** (5 tool × 3-6 sub-test each + 共通 invalid input rejection)。

### MCP wire: `benchtop_mcp.py` 変更

- import 追加 (line 852): `from benchtop_physics_limits import ...` 5 function alias
- 5 @server.tool() wrapper 追加 (line 1305-1428): 各 tool は module 実装への 直呼び出し、 全 docstring は honest scope 明記
- version bump: `0.4.0` → `0.6.0-alpha`
- instructions 更新: v0.5.0-alpha + v0.6.0-alpha 説明追加 (SafetyGate と 相補な pre-flight layer と 明示)
- selftest phase [20a-20f] 追加 (line 2230-2280): 5 MCP tool wire 整合 + 数値 sanity 再確認 + 共通 invalid input rejection

**full selftest [1]-[20] 全 PASS** (前 [19] SafetyGate/import_external_session + 新 [20a-20f] 6 sub-test 追加)。

## ★ 命名 discipline (siren-family pattern 回避)

chat-Claude 提示の 5 tool 名は そのまま採用したが、 全 tool で:
- **name に semantic 埋め込み**: `*_bound_bits` / `*_min_energy_j` / `*_computation_ceiling` / `*_space_size` / `*_upper_bound` (「上界 / 最小 / 上限 / 空間 size」)
- **return dict に flag**: `is_upper_bound: True` / `is_lower_bound: True` / `is_theoretical_max: True`
- **docstring に honest scope**: 各 tool で scope 外条件 (Bekenstein: 球状非回転 + 弱重力 / Landauer: irreversible only / Lloyd: 究極 thought experiment / operator_space: 理論上限 / compression: Shannon 統計)

**★★★ 特に compression**: 「Kolmogorov complexity K(x) は Turing-uncomputable (Chaitin 1975)。 本 tool は Shannon 統計上界のみ、 K(x) の 実現値ではない」 を tool docstring + return dict の `kolmogorov_note` field + module docstring 3 箇所で 反復明示。 [[feedback-super-naming-siren-family-pattern]] の 「命名 X vs 実 param 1/X」 pattern (kolmogorov_complexity という 名前が 果たせない 約束) を 回避。 chat-Claude 元 turn の 警告 「(命名) は 本気で重要です。 K(x) は計算不能なので kolmogorov_complexity という名前のツールは、 果たせない約束をすることになる」 完全継承。

## Rei stack alignment

- **v0.5.0-alpha SafetyGate と 相補**: SafetyGate = SCPI-argument level 物理 hazard (Kikusui CR mode Siemens 混同 等)、 v0.6 physics-limits = 事前規模計算 (「この構成で ΔP は σ を超えるか」 を hardware 送出前に 確認)。 パイプライン: **事前規模計算 (v0.6) → SafetyGate (v0.5) → 実 SCPI 送出**。
- **STEP 1345 の 「Rei stack 4 pillar moat」 に 5 個目の pillar 候補**: SafetyGate + ALCOA+/17025 + Peace Axiom + Rei-Solver 「床」 + **physics-limits pre-flight (LLM 弱点補完)** = 5 pillar。 但し 60+ 年前既知定理の operational wrap のため moat 主張は 控えめ、 「LLM が 単独で 誤る 領域を MCP で 埋める」 便利さの evidence のみ。
- **全 tool pure calc + stdlib のみ**: 状態なし + network I/O なし = **remote MCP としても そのまま deploy 可能** ([[feedback-remote-mcp-deploy-lag-2026-08-19]] 影響最小)。 chat-Claude 指摘 「これは rei-automator と正反対の性質を持つ、 リモート MCP としてそのままデプロイできる、 数少ない手持ちの資産」 と 整合。
- **Rei stack MCP systems 8→8** (v0.5→v0.6 内 tool 数 12→17)、 外部 physics-limits-mcp 切り出しは 実運用で 硬化後の 別 STEP candidate (chat-Claude 「名刺として置くのが現実的」 stance 継承)。

## Honest scope

1. **v0.6.0-alpha は pre-flight scope**、 全 tool は 60+ 年前の 教科書 定理 の operational wrap layer、 novelty ゼロ。 「世界初」 主張ゼロ ([[feedback-world-uniqueness-claim-controllable]] 適用)。
2. **Kolmogorov 複雑性 は siren-family pattern に注意して 名乗らない** — `compression_upper_bound` 名 + `kolmogorov_note` 明示で K(x) uncomputable 継承。 chat-Claude 元 turn の 「果たせない約束をするコネクタ = 無いより悪い」 完全同意。
3. **実 hardware verify 不能** (pure calc の spike scope)、 SafetyGate の pre-flight として位置付け、 実際に測定ベンチで 使う 実運用 evidence は 数週間の 使用後 に別途評価。
4. **操作パイプライン統合は 別 STEP**: v0.6 は 5 tool を stand-alone で 公開したのみ、 measure() / import_external_session() 内で 自動 pre-flight する logic は 未実装 (次 STEP candidate = 「measure() 前に operator_space_size で config bits check する auto pre-flight hook」)。
5. **remote MCP 化は defer**: chat-Claude 推奨 「remote MCP としてそのままデプロイできる」 は technically true だが、 [[feedback-remote-mcp-deploy-lag-2026-08-19]] 13 日 stale 事例 evidence あり、 実運用で 硬化後の 別 STEP で 判断。 [[project-research-only-stance]] + [[feedback-no-rush-publication]] 継承。
6. **順序原則実践**: 私 「内部 benchtop v0.6 先行 → 硬化後 外部化」 推奨 を 藤本さん承認 → chat-Claude 推奨 「外部 MCP 同時」 順を 反転 実行。 [[feedback-one-reproduction-over-ten-unverified]] の 順序原則 適用 (「10 の 未検証 より 1 の 再現」 = 内部で 使い倒してから 外部化)。
7. **既存 wire (v0.4/v0.5) は 無変更**: v0.6 は 追加のみで breaking change なし、 backward compat 完全維持 (Session dataclass 拡張なし、 既 tool 12 個 全 動作)。

## 関連

- benchtop-mcp commit d466808 (fc0web/benchtop-mcp main、 push 済)
- [[project-step1345-benchtop-provenance-spike-2026-08-19]] (v0.5.0-alpha SafetyGate、 本 STEP の 直前 base)
- [[project-step1347-daily-reporter-hotfix-and-archived-bridge-prophylactic-2026-08-20]] (直前 STEP)
- [[feedback-super-naming-siren-family-pattern]] (Kolmogorov 命名 warning、 本 STEP 完全遵守)
- [[feedback-peace-axiom-hardware-io-extension-2026-08-17]] (Peace Axiom hardware I/O template、 SafetyGate + physics-limits の 上位設計)
- [[feedback-remote-mcp-deploy-lag-2026-08-19]] (remote MCP deploy lag 別問題、 外部化 defer 根拠)
- [[feedback-one-reproduction-over-ten-unverified]] (順序原則、 内部先行 → 硬化後 外部化 の 根拠)
- [[feedback-world-uniqueness-claim-controllable]] (「世界初」 主張ゼロ discipline 継承)
- [[feedback-all-research-site-reflection-default]] (2026-08-06 藤本さん永久 protocol、 本 STEP も適用)
- [[feedback-no-rush-publication]] (単日 5-tool 統合 で 完結、 external MCP 化は defer)
