STEP 2208 — arxiv withdrawal detection shared helper 抽出

2026-09-23 · rei-aios-59 · fm-code-duplication-detect-withdrawal 対応 · chat-Claude 明示 next candidate accept
Summary: STEP 2204 で marker した fm-code-duplication-detect-withdrawal (arxiv-fetcher.ts + refresh-watchlist.ts で 4-signature regex 重複) を structural resolve。 新 shared module scripts/research-radar/arxiv-withdrawal.tsWITHDRAWAL_SIGNATURES + detectWithdrawalInHtml() + extractCanonicalArxivId() 抽出、 両 caller が import で 参照 = single source of truth、 silent drift 構造的排除。

Origin

Implementation

新 shared module arxiv-withdrawal.ts (66 line)

Exports:

Comment header 明示:

Any change to the WITHDRAWAL_SIGNATURES array or the detection function now
affects both call sites simultaneously — silent drift eliminated.

Refactor caller 1: arxiv-fetcher.ts (-30 line net)

Refactor caller 2: refresh-watchlist.ts (-15 line net)

Test 実測

npx tsx scripts/research-radar/refresh-watchlist.ts --dry-run (~42s wall-clock):

▶ Checking 14 tracked paper(s) via arxiv.org/abs/... (rate-limited 3s between requests)

   1-13/14 ✓ no change
  14/14 2605.13886 ↩ already withdrawn (skip) — Parity vectors and paradoxical sequences

▶ Refresh summary: 0 newly-withdrawn detected, 13 unchanged, 0 errors

= shared module import path 動作 verify、 STEP 2203 Feature 3 と 同 behavior 保存 confirmed。

fm elimination

fmSTEPStatus
fm-code-duplication-detect-withdrawal2204 (marker) → 2208 (resolved)eliminated

Honest scope