STEP 1587 — scout 施設 asset 収集 channel 追加 v0.1

目的: rei-scout の 従来 4 経路 (GitHub topics + awesome-list + MCP registry + PyPI MCP pattern) は 施設 asset (EPICS/QCoDeS/Tango/Bluesky/Ophyd/SiLA 2) を 全く捉えられない構造。 rei-scout に 2 新 collector + config 拡張 を追加して 構造的 blind spot fix。 藤本さん directive「(A) scout 収集戦略 review」 の 実装 応答。

構造的 blind spot 実測 (2026-08-23 catalog)

ecosystemscout hits状態
EPICS0 hit収集網に 全く 引っかからず
QCoDeS0 hit同上
Tango0 hit同上
SiLA2 hits別 project (agentbroker 等 誤 hit)
Ophyd1 hitverdict=watch score 45.2 で 埋没
Bluesky5 hits全 watch score 45.2 で 埋没

chat-Claude 2026-08-30 arc 指摘 「10+ 年 実験室制御 mature ecosystem が 179 件から抜けている」 = 事実確認済。 rei-scout 収集 bias が 「AI/MCP エコシステム最新動向」 に強く、 「施設 asset 40+ 年 pypi + ANL/BNL 由来」 には 届かない構造。

追加 channel — 2 新 collector

1. harvest_pypi_instruments (32 pattern)

INSTRUMENT_PYPI_PATTERNS = [
  # EPICS  = pyepics, caproto, epicscorelibs, aioca, p4p, phoebus-
  # QCoDeS = qcodes, qcodes-, qcodes-loop, qcodes-contrib-drivers
  # Tango  = pytango, tango-, taurus, taurus-
  # Bluesky/Ophyd = bluesky, bluesky-, ophyd, ophyd-, databroker, event-model, tiled
  # SiLA 2 = sila2, sila2-, unitelabs-sila
  # 隣接汎用 = pymeasure, instrumentkit, qkit, pyvisa, python-ivi
]

Live test 結果 (PyPI 880,799 パッケージ、 limit=50):

2. harvest_github_orgs (12 org 直接 listing)

INSTRUMENT_GITHUB_ORGS = [
  # rei-aios STEP 1569 design-import 6 ecosystem 主要 org
  'epics-base', 'epics-modules', 'epics-extensions',
  'microsoft', 'tango-controls', 'taurus-org',
  'bluesky', 'nsls-ii', 'sila2',
  # 隣接 大型実験施設
  'diamondlightsource', 'esrf', 'cern-controls',
]

GITHUB_TOKEN 必須 (未認証 rate limit 60/h で 現実的に枯渇)。

config.py 拡張 (additive、 regression risk なし)

field追加内容
DOMAINS hardware queries1024+14 (topic:epics-controls, topic:qcodes, topic:tango-controls 等)
TOPIC_TAGS1929+10 (施設 asset topic set)
TOPIC_KEYWORDS5172+21 (channel access, process variable, run engine, feature definition language 等)
TRUSTED_OWNERS2537+12 (epics-base, tango-controls, nsls-ii, diamondlightsource, esrf, cern-controls 等)

rei-aios 側 wrapper

# Dry-run (config 確認、 network 不使用)
python scripts/scout-instrument-harvest.py

# 実行 (network 使用、 GITHUB_TOKEN 推奨)
python scripts/scout-instrument-harvest.py --run

# catalog merge (rei-scout catalog.json に 新 entry 追加)
python scripts/scout-instrument-harvest.py --run --merge

出力: data/scout-extension/instrument-harvest-{YYYY-MM-DD}.json

Honest scope

Live test 検出 filesystem 断片

=== 検出結果 top 10 ===
  DiamondLightSource/aioca                 query=harvest:pypi-inst/aioca
  bluesky/bluesky                          query=harvest:pypi-inst/bluesky
  gaoyunzhi/bluesky_2_album                query=harvest:pypi-inst/bluesky-2-album  [false-positive]
  bluesky/bluesky-adaptive                 query=harvest:pypi-inst/bluesky-adaptive
  NSLS-II/bluesky-browser                  query=harvest:pypi-inst/bluesky-browser
  bluesky/bluesky-cartpole                 query=harvest:pypi-inst/bluesky-cartpole
  wright-group/bluesky-cmds                query=harvest:pypi-inst/bluesky-cmds
  bluesky/bluesky-darkframes               query=harvest:pypi-inst/bluesky-darkframes
  TUDelft-CNS-ATM/bluesky                  query=harvest:pypi-inst/bluesky-guidata  [false-positive]
  TUDelft-CNS-ATM/bluesky-gym              query=harvest:pypi-inst/bluesky-gym       [false-positive]

関連