---
name: project-step1407-benchtop-v08-akizuki-wireup-mock-2026-08-26
description: STEP 1407 (2026-08-26) — STEP 1406 wire-up 候補 list の (1)(2)(3) 実装。 benchtop-mcp に v0.8.0-alpha として 4 tool 追加 (list_akizuki_probes + measure_environment BME280 + measure_orientation BNO055 + measure_distance VL53L1X)。 全 hardware_available:False mock、 selftest 9/9 module + 6/6 MCP tool wire PASS、 regression clean、 STEP 1396 olfact pattern 継承。
metadata: 
  node_type: memory
  type: project
  originSessionId: 9d6c89fd-6964-47dc-8daa-a59c1d27f973
  modified: 2026-08-25T23:24:49.659Z
---

# STEP 1407 — benchtop-mcp v0.8.0-alpha Akizuki wire-up 3 layer mock (2026-08-26)

## 起点

藤本さん directive 「1 から 5 を 順番に お願い致します」 の (1)(2)(3) 一括実装。 STEP 1406 で 抽出した 25 SKU wire-up 候補 のうち、 3 layer pilot (BME280 環境 / BNO055 慣性 / VL53L1X ToF 距離) を benchtop mock として 追加。

STEP 1396 (olfact/biosensor v0.7 mock spike) の pattern を そのまま 継承 = 全 tool `hardware_available:False` + deterministic hash seed + `is_mock:True` marker 徹底。

## 実装

### 新 module: `benchtop_akizuki_wireup.py` (~580 行)

3 mock probe registry:
- `bme280-env-a1` (Bosch BME280、 Akizuki 109421、 I2C、 ¥1,180)
- `bno055-imu-b1` (Bosch BNO055 9軸、 Akizuki 116996、 I2C、 ¥3,850)
- `vl53l1x-tof-c1` (STMicro VL53L1X ToF、 Akizuki 114249、 I2C、 ¥1,780)

4 tool 実装:
- `list_akizuki_probes()` — 3 probe registry (akizuki_code + price_jpy + interface + range)
- `measure_environment(probe_id, condition_tag)` — BME280 mock (t/h/p + verdict)
- `measure_orientation(probe_id, motion_tag)` — BNO055 mock (quaternion unit-norm + euler ZYX + linear_acc + magnetic + calibration_status)
- `measure_distance(probe_id, target_tag, timing_budget_ms=100)` — VL53L1X mock (distance_mm + range_status + verdict)

### benchtop_mcp.py 統合

- version: 0.7.0-alpha → **0.8.0-alpha**
- import 追加 (line 939-948、 olfact 直後)
- instructions string に v0.8.0-alpha 追加 4 tool 説明追記
- @server.tool() wrapper 4 個追加 (probe_health 直後、 list_sessions 直前)
- selftest [22a-22f] 6 test 追加

### Verify

- Module 単体: `python benchtop_akizuki_wireup.py` → **9/9 PASS**
  - [1] list_akizuki_probes count=3
  - [2] measure_environment in-range (t=17.85C h=64.87% p=822.0hPa verdict=TRUE)
  - [3] measure_environment determinism
  - [4] measure_orientation quaternion unit-norm (q_norm=1.000000)
  - [5] measure_orientation determinism
  - [6] measure_distance range check (d=1114.5mm status=VALID verdict=TRUE)
  - [7] measure_distance timing_budget out-of-range rejection
  - [8] cross-layer misuse rejection (env↛orient / imu↛env / env↛tof)
  - [9] unknown probe rejection

- MCP tool wire: `python benchtop_mcp.py --selftest` [22a-22f] → **6/6 PASS**
- 既 selftest [1-21] regression: **clean** (v0.5/v0.6/v0.7 全 動作維持)

### Commit + push (benchtop-mcp repo)

- commit `0adaaa6` (`23cfc0d..0adaaa6`)
- push origin main 成功
- 2 files changed (779 insertions): `benchtop_akizuki_wireup.py` NEW + `benchtop_mcp.py` 197 lines

## Honest scope (7 条)

1. **全 hardware 未取得** = 全 tool `hardware_available:False`、 実 sensor physics (Bosch calibration curve / on-chip Madgwick-Mahony fusion / 940nm SPAD photon counting) 模倣なし = interface skeleton のみ
2. **deterministic mock** = probe_id + tag の `hashlib.md5` seed 由来、 cross-process 再現可能。 md5 は cryptographic 用途ではない (単純 seed 用途、 collision resistance 要求せず)
3. **Verdict = 2 値 subset のみ** = STEP 1350 8 値のうち TRUE/NEITHER のみ、 残 6 値 (FALSE/BOTH/SELF/∞/○/〜) 未使用
4. **SafetyGate 統合 未実装** = STEP 1406 で 「本 3 layer は SafetyGate 対象外 (3.3V<5mA)」 判定済、 v0.9+ で 通信 layer TELEC 認証 追加時 に SafetyGate rule 拡張予定
5. **1 SKU / layer のみ** = STEP 1406 で 抽出した 25 SKU のうち 3 pilot のみ、 SHT31/40I/DHT20/LSM6DSV16X/VL53L0X/GP2Y0E03 は v0.9+ 拡張 candidate
6. **実 wire-up barrier 4 段 未着手** = hardware 発注 + host MCU (STM32/ESP32) + I2C driver + benchtop tool 定義。 本 STEP は 最下段 (tool 定義) の skeleton のみ
7. **novelty ゼロ** = 個人電子工作 定番 pattern、 [[feedback-world-uniqueness-claim-controllable]] 継承、 「世界初」 主張なし

## 次段候補 (defer、 藤本さん judgment 待ち)

- **STEP 1408 (4)** — 秋月 追加 recon で gas/CO2 (CCS811/SCD40/BME680) enumeration → v0.9-alpha 化学 layer 候補
- **STEP 1409 (5)** — rei-scout 25 SKU を `import-as-mcp` category に decision 記録 (STEP 1403 flow)
- v0.9-alpha 拡張: 追加 SKU + SafetyGate rule 拡張 (通信 layer TELEC 認証)
- 実 hardware wire-up: BME280 module 発注 + ESP32 host + I2C driver + benchtop tool 実測データ差替 (別 arc、 藤本さん physical hardware 判断待ち)

## Artifact

- `benchtop-mcp/benchtop_akizuki_wireup.py` (~580 lines、 commit 0adaaa6)
- `benchtop-mcp/benchtop_mcp.py` (v0.7→v0.8 統合、 import + 4 wrapper + selftest [22])
- `rei-aios/public/tools/step-1407-benchtop-v08-akizuki-wireup-mock/index.html` (~13 KB)
- `rei-aios/dist-renderer/tools/step-1407-benchtop-v08-akizuki-wireup-mock/index.html` (mirror force-track)
- 公開 URL: https://rei-aios.pages.dev/tools/step-1407-benchtop-v08-akizuki-wireup-mock/
- Source: https://github.com/fc0web/benchtop-mcp/commit/0adaaa6

## 継承 discipline

- [[feedback-all-research-site-reflection-default]] 2026-08-06 protocol 遵守 (backend engine → site 化)
- [[feedback-no-rush-publication]] 継承 (mock skeleton まで、 実 hardware は defer)
- [[feedback-world-uniqueness-claim-controllable]] 継承 (「初」 主張ゼロ)
- [[feedback-super-naming-siren-family-pattern]] 継承 (mock でない 誤読 予防、 全 return dict is_mock:True)
- [[feedback-projection-self-audit-pattern]] SAC-4 継承 (STEP 番号 collision 予防、 STEP 1406 直後 catch)

## Related

- [[project-step1406-akizuki-i2c-spi-uart-wireup-candidates-2026-08-26]] (起点、 25 SKU list origin)
- [[project-step1404-akizuki-seven-machines-mapping-2026-08-26]] (前々段 (a))
- [[project-step1396-benchtop-olfact-spike-2026-08-23]] (structural sibling pattern)
- [[project-step1348-benchtop-physics-limits-v06-2026-08-20]]
- [[project-step1345-benchtop-provenance-spike-2026-08-19]] (SafetyGate)
- [[project-step1350-d8-verdict-mapping-phase-a-2026-08-20]] (verdict field 原典)
