Weekly API Radar v0.1.0

STEP 2073 rei-aios-85 tab 2026-09-16

公開 API を持つ学術・計測系サービスを 週次 で 4 reject 語彙で分類、 コネクタ候補 (全 reject を pass する service) を出力する 探索器。 STEP 2068 rei-crossref-mcp land 直後 の chat-Claude cowork session 「最小の提案 3 項目」 の 実装。

rei-scout との 分離 rationale

rei-scout (repo 発見 + MCP 導入判断) と reject 基準が違うため 独立。

取得層 (fetch pattern) は research-radar / rei-scout 系列を参考、選別層 (reject 4 語彙) は 独自。

4 reject 語彙 (閉じている)

code意味
NO_API公開文書化された自動アクセス手段が存在しない (Web UI のみ / undocumented)
AUTH_REQUIREDAPI key / OAuth / 契約が必要 (無料でも key 発行 は 「登録 = 契約」 相当)
TOS_FORBIDS_AUTO利用規約が自動取得を禁止 (robots.txt / TOS explicit clause)
UNREACHABLEHTTP 到達不能 (5xx / DNS 失敗 / timeout / 接続拒否)

未定義の code で Reject を作ろうとすると Error。語彙は閉じている。

週次 cadence 理由 (chat-Claude 起点)

Seed 候補 8 服 (chat-Claude 2026-09-16 message で 名前挙がった 7 + Crossref)

idnamestaticVerdict
crossrefCrossrefCANDIDATE (STEP 2068 で rei-crossref-mcp land 済)
openalexOpenAlexCANDIDATE (匿名 tier あり、mailto polite pool)
issn-portalISSN PortalAUTH_REQUIRED (メイン検索 = subscription、詳細調査 defer)
research-comResearch.comNO_API
ad-scientific-indexAD Scientific IndexNO_API
clarivate-hcrClarivate Highly Cited ResearchersNO_API
nature-indexNature IndexNO_API
rsciRSCI (Russian Science Citation Index)NO_API

週次 manual run 2026-W38 実測

VerdictCount
CANDIDATE2 (Crossref + OpenAlex)
NO_API5
AUTH_REQUIRED1
TOS_FORBIDS_AUTO0
UNREACHABLE0
total8

chat-Claude cowork session の 予測 table (「7 つ調べて、コネクタになるのは 2 つ」) と 完全一致。 Live probe: Crossref HTTP 405 in 638ms (server alive、HEAD not allowed = reachable=true 正確判定) + OpenAlex HTTP 200 in 436ms。

2 層 self-test (装置設計の原則 ②)

種別件数失敗時の意味
層 1 offline fixture (fetch 注入式) 53 assertion コネクタのバグ
層 2 live (Crossref 1 probe) 1 assertion Crossref 側の問題として SKIP (FAIL でない)

正常系 (Crossref/OpenAlex reachable) + 異常系 (5xx/DNS/timeout) 両立の fixture (STEP 2068 rei-crossref-mcp 継承)。

使い方

# manual run (live probe)
npx tsx scripts/weekly-api-radar/index.ts

# dry-run (probe skip、curated verdict のみ)
REI_SKIP_LIVE=1 npx tsx scripts/weekly-api-radar/index.ts

# self-test
npx tsx scripts/weekly-api-radar/tests/test-offline.ts
REI_SKIP_LIVE=1 npx tsx scripts/weekly-api-radar/tests/test-offline.ts

Output

MODULE_INFO (STEP 1676 8-key 契約 voluntary conformance)

lib/module-info.tsMODULE_INFO は STEP 1676 SelfDescriptionContract 8 key (name / version / step / purpose / publicApi / keyConcepts / relatedModules / honestScope) に voluntary 準拠。verifyModuleInfo() で verify、test 側で issues == [] を assertion。

Nuance: STEP 1676 enumerate.ts で research-radar / rei-scout は evolutionKind: 'function-add' = out-of-scope 明示分類。本採用は voluntary conformance (契約からの逸脱ではなく良い自己記述 discipline)。 STEP 2068 rei-crossref-mcp と同じ pattern。

既知の限界 (honest scope)

装置設計の 3 原則 (embed、 STEP 2068 継承)

  1. Reject 語彙 は 閉じている — 4 種の 閉じた 語彙 + where dict で「どこで・なぜ」を返す
  2. Self-test を 被診断対象 から 切り離す — HTTP を fetch 関数として注入、偽 fetch で offline test 可能
  3. 正常系の fixture を必ず含める — 異常系だけだと 「常に reject を返す 実装」 が満点を取る

関連 STEP