STEP 1576 (c) — Connector Protocols

STEP 1576 · STEP 1569 top 3 の (c) 実装 · STEP 1556 shape 文字列 → Ophyd-style Protocol interface + compile-time conformance + runtime audit · Rei-AIOS · 2026-08-30

目的

STEP 1569 Ophyd 読解 top 3 の (c):

Protocol 型で connector catalog を裏付け: STEP 1556 の shape 文字列 (puzzle-verifier 等) を Movable/Readable 相当の TS interface に昇格、drift auditor (STEP 1560) を 「型不一致 = build error」 に強化

Ophyd (Bluesky) の 7 protocol (Readable / Movable / Triggerable / Configurable / Stageable / Subscribable / Flyable) と対応させて、Rei stack の 3 connector shape を型として形式化。

Ophyd 対応

Ophyd ProtocolRei Protocol (v0.1)該当 connector
Readable (read + describe) 共通基底 HonestScoped (source + honestScope) / Diagnosed (diagnostics) / Verdicted<V> (verdict + reason)
Movable (set → Status)
Triggerable (trigger → Status)
Configurable analog SingleVerdictConnector<T, V, ChipR> game-verdict-connector
reverse search protocol UniquenessCheckConnector<Spec, Sol> puzzle-verifier
dual-condition search protocol UniquenessNecessityConnector<Spec, Trace> mystery-reasoning-connector

実装 (2 file + 1 audit script)

src/mcp/connector-protocols.ts — 型定義

3 protocol type + 3 report shape + 3 base trait + VERIFIER_SHAPE_TO_PROTOCOL mapping:

// Base traits
interface HonestScoped { source; honestScope }
interface Diagnosed    { diagnostics }
interface Verdicted<V> { verdict: V; reason }

// Shape 1: single-verdict (game)
type SingleVerdictConnector<T, V, ChipR> =
  (terminals: T) => SingleVerdictReport<T, V, ChipR>

// Shape 2: uniqueness-check (puzzle)
type UniquenessCheckConnector<Spec, Sol> =
  (spec: Spec, options?) => UniquenessCheckReport<Spec, Sol>

// Shape 3: uniqueness-necessity (mystery)
type UniquenessNecessityConnector<Spec, Trace> =
  (spec: Spec) => UniquenessNecessityReport<Spec, Trace>

// Meta mapping
const VERIFIER_SHAPE_TO_PROTOCOL = {
  'single-verdict':       'SingleVerdictConnector',
  'uniqueness-check':     'UniquenessCheckConnector',
  'uniqueness-necessity': 'UniquenessNecessityConnector',
} as const;

src/mcp/connector-protocol-conformance.ts — compile-time drift 検知

各 registered connector の 実 verifier 関数を 対応する Protocol type に代入。 TS 構造的 typing により signature drift が発生すると compile error:

const _puzzleConformance:   UniquenessCheckConnector       = verifyPuzzle;
const _mysteryConformance:  UniquenessNecessityConnector   = verifyMystery;
const _gameConformance:     SingleVerdictConnector          = runCircuit;

runtime export として REGISTERED_CONFORMANCES 配列も提供 (audit script が消費):

[
  { connectorId: 'puzzle-verifier',   protocol: 'UniquenessCheckConnector' },
  { connectorId: 'mystery-reasoning', protocol: 'UniquenessNecessityConnector' },
  { connectorId: 'game-verdict',      protocol: 'SingleVerdictConnector' },
]

scripts/audit-connector-protocols.ts — runtime companion

catalog ↔ conformance の cross-reference audit:

Usage: npm run audit:protocols (exit 0/1) / --json。 初回 run 3/3 sync 達成:

═══════════════════════════════════════════════════════════════
  Connector Protocol Conformance Audit — STEP 1576 (c)
═══════════════════════════════════════════════════════════════
  Catalog entries:     3
  Conformance entries: 3
  Total ids scanned:   3

  ✓ game-verdict       single-verdict       → SingleVerdictConnector
  ✓ mystery-reasoning  uniqueness-necessity → UniquenessNecessityConnector
  ✓ puzzle-verifier    uniqueness-check     → UniquenessCheckConnector

  ✓ Catalog ↔ conformance in sync. No protocol drift.

2 layer drift 検知 (STEP 1560 との相補)

LayerScript検知対象時期
Vocabulary STEP 1560 audit-connector-catalog.ts chip 名 / terminal 名の 語彙 drift (source-grep) runtime (audit script 実行時)
Type STEP 1576 connector-protocol-conformance.ts verifier 関数 signature の型 drift compile-time (TS build 時)
Type sync STEP 1576 audit-connector-protocols.ts catalog ↔ conformance file の cross-reference sync runtime (audit script 実行時)

Forcing function: 新 connector 追加時、agent は (1) catalog entry + (2) conformance assignment + (3) 対応 protocol type (新 shape の場合) を全て足す必要がある。 抜けると 3 audit のいずれかで検知される。

Test — 56/56 PASS

test/step1576-connector-protocols-test.ts、 8 section:

  1. connector-protocols module — type exports load
  2. VERIFIER_SHAPE_TO_PROTOCOL mapping 完全性
  3. connector-protocol-conformance — REGISTERED_CONFORMANCES load + function identity 確認
  4. runtime audit — 0 mismatches (catalog ↔ conformance)
  5. puzzle-verifier runtime output に Protocol 必須 field 全部あり
  6. mystery-reasoning-connector runtime output に Protocol 必須 field 全部あり
  7. game-verdict-connector runtime output に Protocol 必須 field 全部あり
  8. negative test — 未知 shape が audit で reject される

結果: 56/56 PASS + 既存 regression (step1556: 35/35 / step1560: 63/63) 全通過。

Honest scope