目的: 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」 の 実装 応答。
| ecosystem | scout hits | 状態 |
|---|---|---|
| EPICS | 0 hit | 収集網に 全く 引っかからず |
| QCoDeS | 0 hit | 同上 |
| Tango | 0 hit | 同上 |
| SiLA | 2 hits | 別 project (agentbroker 等 誤 hit) |
| Ophyd | 1 hit | verdict=watch score 45.2 で 埋没 |
| Bluesky | 5 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 由来」 には 届かない構造。
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):
DiamondLightSource/aioca (EPICS async)、 NSLS-II/bluesky-browser、 bluesky/bluesky-adaptive、 bluesky/bluesky-cartpole、 bluesky/bluesky-darkframesTUDelft-CNS-ATM/bluesky (航空管制 tool、 名前衝突) = 手動 review 前提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 で 現実的に枯渇)。
| field | 元 | 新 | 追加内容 |
|---|---|---|---|
| DOMAINS hardware queries | 10 | 24 | +14 (topic:epics-controls, topic:qcodes, topic:tango-controls 等) |
| TOPIC_TAGS | 19 | 29 | +10 (施設 asset topic set) |
| TOPIC_KEYWORDS | 51 | 72 | +21 (channel access, process variable, run engine, feature definition language 等) |
| TRUSTED_OWNERS | 25 | 37 | +12 (epics-base, tango-controls, nsls-ii, diamondlightsource, esrf, cern-controls 等) |
# 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
*.bak-step1587 保存済、 patches: scripts/scout-extension/step1587-{config,collect}.py.patch (計 250 行 additive)=== 検出結果 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]