STEP 1536 — benchtop-mcp Signal/Device 2 層化 spec

STEP 1536 · design-only spec、 ophyd-async pattern port · Rei-AIOS · 2026-08-30 · commit b49d9449f

要旨

benchtop-mcp (現状 v0.9、 27 tool) の hardware verdict emit を、 tool 毎の ad-hoc 実装から bluesky/ophyd-async (BSD-3-Clause) 準拠の Signal/Device 2 層 architecture に refactor する design spec。 STEP 1567 disk_health_verdict の ZERO no_data pattern を 全 27 tool 拡張 + backend polymorphism (mock ⇄ real ⇄ replay) + protocol typing で connector catalog (STEP 1556) 裏付け。

2 層 architecture

LayerRoleQuality range
Layer 1 Signal最小読取単位 (per-value + quality 4 subset){TRUE, NEITHER, INFINITY, ZERO} (Tango 準拠 subset)
Layer 2 DeviceSignal aggregation → D-FUMT₈ 8 値 verdict emitfull 8 値 (BOTH / FLOWING / SELF 含む)

quality の 4 subset は STEP 1573 (Tango 5 → D-FUMT₈ 8 mapping) から derive: TRUE = ATTR_VALID / NEITHER = ATTR_INVALID / INFINITY = 測定限界超過 / ZERO = NotConnectedError (STEP 1567 no_data pattern 全 tool 拡張)。

Backend polymorphism

実 refactor 順序 (別 STEP allocation)

  1. Phase 1: src/mcp/signal.ts + src/mcp/device.ts interface 追加 (backward compat)
  2. Phase 2: 1 tool pilot (recommend: STEP 1567 disk_health_verdict = 既に ZERO no_data pattern 実装済で 移行 cost 最小)
  3. Phase 3: 残 26 tool 順次 migration
  4. Phase 4: SafetyGate integration (別 tab STEP 1584 dispatch layer と 直交統合)

Phase 1 pilot は STEP 1593 で 完了 (rei-aios 側で signal-device.ts + disk-health adapter + test 32/32、 backward compat 完全維持)。 benchtop-mcp 別 repo への 移植 は 別 STEP defer。

Honest scope

Related