v0.3 で site HTML の合計行文言だけ「cron only」に直したが、raw JSON 側の artifactSummary/unknownSummary には fresh/aging/stale/dead/flowing の数値が残っていた = chat-Claude 指摘「chat 側が読むのは JSON なので、計器としては未修正と同じ」正しい。
v0.4 で ExcludedKindSummary { total, verdict: "N/A", reason } に置換、 raw JSON 側で数値を消去。 schemaVersion 3 → 4。
さらに SourceRecord.excludedFromAggregate: boolean を per-record にも追加、 downstream が cron records のみ抽出可能に。
akizuki-wireup-catalog / session-snapshots のような STEP 途中生成物が 72 母数を水増しし dead=42 (58%) を実態より悪く見せた。 訂正: SourceRecord.kind: 'cron' | 'artifact' | 'unknown' 追加、summary を cronSummary / artifactSummary / unknownSummary の 3 段に分離、artifact は cron health 集計から除外。generatedAt = 2026-08-30T14:53:28.404Z (JST 23:53:28)、site JSON が真実。site page には時刻書いていなかったので site 側訂正なし、chat 上のみ訂正済。scripts/comparator/ ├── lib/ │ ├── types.ts — v0.2: SourceKind + KindSummary + schemaVersion 2 │ ├── discover.ts — 変更なし │ └── classify-kind.ts — NEW: KNOWN_CRON + KNOWN_ARTIFACTS allowlist + heuristic ├── gauges/ │ └── freshness.ts — kind 分類 → 3 段 summary └── run-freshness.ts — v0.2 output format test/step1605-freshness-v02-kind-split-test.ts — 30/30 PASS (10 section) test/step1599-comparator-freshness-test.ts — 24/24 PASS (v0.2 schema 対応 update)
scripts/{fetch,generate,build}-{source}*.ts or scripts/**/*{source}*-fetcher.ts 存在 → cron| Kind | Total | Fresh | Aging | Stale | Dead | Flowing | 備考 |
|---|---|---|---|---|---|---|---|
| cron | 50 | 17 | 0 | 0 | 25 | 8 | load-bearing 集計 (これのみ health 指標) |
| artifact | 22 | N/A | N/A | N/A | N/A | N/A | cron health から除外 (STEP one-shot 生成物、verdict 算定対象外) |
| unknown | 0 | — | — | — | — | — | classifier 全 source 判定成功 |
「分類根拠が出力に残っていないと heuristic 揺れで dead 率が理由不明のまま動く」への応答。
各 record に kindSource が付与され、report 全体で分布可視:
| kindSource | Count | 意味 |
|---|---|---|
allowlist | 49 | KNOWN_CRON 明示 (私が curated した 50 source の内 49 が実在) |
denylist | 22 | KNOWN_ARTIFACTS 明示 (curated 23 の内 22 実在) |
heuristic-script | 1 | scripts/**/*{source}*.ts 自動検出: solar-wind のみ |
unknown-fallback | 0 | 3 段全て miss (実測 0 = curated が十分) |
crossref · impossibility-equations · lmfdb · multi-sensor-fusion · paranormal-occult · semantic-scholar · wic-economy · wic-events
| Source | Age | 備考 |
|---|---|---|
oeis | 2659h (~111 日) | fetch-oeis-stream.ts あり |
microbe-gallery | 2510h (~105 日) | fetch-microbe-gallery.ts あり |
genesis-stage | 1695h (~70 日) | classify-theories-by-genesis-stage.ts |
mdnst | 1695h (~70 日) | generate-mdnst-snapshot.ts |
millennium-raa | 1695h (~70 日) | analyze-millennium-with-raa.ts |
activity-log · arxiv-edu · arxiv-recent · buddy · crypto · edu-news · eric · gbif-recent · github-edu · hf-models · jquants · ligo-events · manifold · nasa-sdo · quakes · wiki-edits · wiki-pageviews
v0.1 で「aging=0, stale=0 は bimodal 発見」と★を付けた。 chat-Claude 指摘通り、これは閾値設計の直接帰結で発見ではない:
中間帯を意味のある帯にする方法: threshold を per-source cron interval の倍数で正規化 (例: fresh ≤ 1.5 × interval)。 これは v0.3+ の課題 (別 STEP 候補)、v0.2 では global threshold 維持し honestScope で明示。
| # | 計器 | 状態 |
|---|---|---|
| 1 | source_freshness | ✅ v0.2 (STEP 1605 fix) — cron 50 / artifact 22 分離、fetcher bug 8 本特定 |
| 2 | harvest_lag | ✅ v0.1 (STEP 1601, arXiv 9 feeds 全 TRUE) |
| 3 | dedup_collision | ⏳ 次 STEP |
chat-Claude 直 fetch URL:
https://rei-aios.pages.dev/tools/step-1599-comparator-framework/https://rei-aios.pages.dev/data/comparator/freshness-latest.jsondata/{source}/latest.json のみ読む。外部 API 呼出 0、真値照合 0。「file が新しい」を測る、「content が正しい」は測らない。