File: scripts/research-radar/score-papers.ts (185 → ~325 line、 +140 line 追加)
AuditRecord + AuditStatus interfacesloadAuditIndex() — collatz-watch.json → Map<arxivId, AuditRecord> (version suffix strip normalized)extractArxivId(url) — arxiv URL/id から canonical arxivId (NNNN.NNNNN) 抽出 regexbuildAuditStatus(paperId, source, index) — marker 生成 (✓ audited STEP N / ⚠ WITHDRAWN (STEP N) / '')freshTop + audRedundant の 別 section 表示scorerVersion v0.2 → v0.3-audit-aware、 auditIndex.matchedInFeed、 auditStatuses[] parallel array--date=2026-09-22 --no-haiku)▶ Audit index loaded: 14 tracked paper(s) (collatz-watch.json) Top 5 by overall score — fresh signals (78 total unaudited): 1. [0.47] A Machine-Checked Proof that Gardam's Ã₂ Lattice... 2. [0.47] An exponential lower bound for the bit pigeonhole... 3. [0.47] A lower bound for ⟨3,2,m⟩ matrix multiplication 4. [0.43] Elimination of René Peschmann's 968 Remaining Hard Fibers 5. [0.41] Christoffel words as extremal structures in Collatz dynamics Already-audited / withdrawn (3 suppressed from top display): ✓ audited STEP 1730 [0.43] A Fibonacci theorem for Collatz trajectories ⚠ WITHDRAWN (STEP 2202) [0.40] Parity vectors and paradoxical sequences ✓ audited STEP 1724 [0.29] A Boolean polynomial operator for the Collatz 3n+1 problem audit breakdown: fresh=78 / audited=2 / withdrawn=1
File: scripts/research-radar/refresh-watchlist.ts (新規、 ~185 line、 stdlib only)
目的 (chat-Claude 4th round 明示): 「撤回の検出は新着論文を見るときだけでは間に合いません。 Niu は一度拾ったあとで撤回されました。 collatz-watch.json に既に載っている論文を定期的に再確認する経路が要ります。」
trackedArxivPapers.papers[]withdrawn === true unless --force):
https://arxiv.org/abs/{arxivId} HTML (polite User-Agent + 30s timeout + 1-level redirect follow)detectWithdrawal(html) — 4 signatures regex matchnewly-withdrawn actionwithdrawn: true + withdrawal_reason + alignment: WITHDRAWN-DO-NOT-CITE + refresh_history append) + bump version + append versionHistory (step: 2203)--dry-run: report only, no JSON write--force: re-check papers already marked withdrawn--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
Feature 2: 新着 論文 (arxiv-fetcher.ts) 内 の 撤回 detection = fetcher が arxiv API 経由 fresh listing 拾う 時点 で、 各 paper の abstract page HTML を 追加 fetch して withdrawal marker parse、 撤回 paper は fetcher output から suppress or 明示 marker。
理由 defer: (a) MVP scope = Feature 1 + Feature 3 = 「既 audit re-flag」 + 「既載 撤回」 の 2 型 完全 cover / (b) Feature 2 は 「新着 で いきなり 撤回状態」 の 特殊 case、 頻度 低 / (c) 実装 = arxiv-fetcher.ts 内 追加 fetch layer 挿入 = 全 paper で N * HTTP request 増、 rate-limit budget 増 / (d) STEP 2203 中規模 scope 遵守 (「session 内 完了」 discipline)
| fm (STEP 2202 emerge) | Feature 1 | Feature 3 | 予防 status |
|---|---|---|---|
| fm-radar-re-flag-already-audited-paper | ✅ 主 cover (Top-N 分離 + marker) | (indirect) | 恒久予防 land |
| fm-radar-withdrawn-paper-not-flagged | ✅ collatz-watch registry 内 withdrawn 明示 marker | ✅ 定期 re-check で 新 撤回 auto-detect | 恒久予防 land |
| fm-narrative-fit-without-numerical-verify | (無関係、 discipline 側) | (無関係) | discipline layer preserve |
| fm-site-coverage-claim-without-artifact-verify | (無関係、 discipline 側) | (無関係) | discipline layer preserve |
[via 藤本さん explicit go 「★ Pending 2 (最上位) に 進めて下さい」 2026-09-23 / orig: chat-Claude(cloud、 folder 未接続) 4th round 実装助言 accept / execute: rei-aios-59]