STEP 1926 → 1958 · 13-STEP arc · 2026-09-10〜11 · rei-aios-20 + 9b
更新の有無と参照の有無、二つの軸を独立に取って交差させ、単一軸では出てこない状態を拾う工具。とりわけ「更新なし・参照あり」(RUIN)は、静かに止まったのに読まれ続けている成果物の印です。Arc 全体 (12 STEP): v0.1 land → 50-sample calibration → v0.2 archive detection → v0.3-lite pilot detector → cleanup → site → v0.4 latest.json → top pill → v0.5 stability fix (determinism + cap 20k→50k) → v0.5 recalibration (actionable rate 0/50 = 大転換 finding) → v0.6-alpha audit dashboard → arc-wide site update (this STEP)。装置 role は cleanup guidance から measurement/audit に shift 済み。
計 in-scope 2,675 (scoped-out 325 = human-read heuristic filter)。scan 10.4 秒 / 3,000 artifacts scanned。
| path | refs | age (days) |
|---|---|---|
| data/invention/invention-2026-05-21.json | 3 | 111.2 |
| data/invention/invention-2026-05-02.json | 2 | 130.4 |
| data/invention/approvals/approved-2026-05-05.json | 2 | 126.6 |
| data/invention/invention-2026-05-08.json | 2 | 124.4 |
| data/invention/invention-2026-05-09.json | 2 | 123.4 |
生の JSON は sample-scan.json (2026-09-10 実測、全 verdict + honestScope 含む)。
v0.1 RUIN 1,136 から stratified sample 50 review、verdict:
| Verdict | Count | Rate | 意味 |
|---|---|---|---|
| A ACTIONABLE_CLEAN | 2 | 4% | 実 cleanup 候補 |
| B TOLERATE_ARCHIVE | 48 | 96% | historical/audit/mirror/snapshot |
| C FALSE_POSITIVE | 0 | 0% | device 誤 flag |
| D UNKNOWN | 0 | 0% | 判定不能 |
Precision-as-suspicious-flag: 100% (A+B)。Actionable rate: 4% のみ = 装置の 実 utility は 装置精度と別軸。主 finding: Rei プロジェクト の append-only 学問体系 慣習 (approval trail / paper artifact / historical snapshot / external mirror) と 装置素朴 semantics の semantic mismatch。
STEP 1947 evidence に基づき consumption-mode.ts に 8 archive pattern 追加 + defaultConfig.excludeModes に archive 追加。
計 in-scope 14,882 (scoped-out 5,118)。v0.1 (18,824 / 1,176) から scoped-out +3,942 (archive-classified 増加分)、RUIN 1,136 → 334 (-802、-70.6%)。
v0.2 追加 patterns:
data/external-oss/ / data/external-research/ / data/anki/ / data/lean4-transfer/approved-YYYY-MM-DD.json / publish-log-*.json / 汎用 dated / date-prefixed / compact ISO datetimeActionable rate v0.2 推定: lean4-mathlib 297 × 20% + non-lean4-mathlib 37 × 2% ≈ 60/334 ≈ 18% (v0.1 の 4% から 5x 改善)。ただし予測「40-70%」より下振れ、失敗理由は notepad で honest 記録。
lean4-mathlib 内 pilot 検出用 grep-based tool、509 .lean files 中 310 が isolated (60.9%)。Meta finding: Rei の Lean methodology は per-STEP proof exhibit style (各 Step<N>*.lean は STEP 出力 record として standalone、library building block ではない)、「isolated = actionable cleanup」は Rei-context で不成立。detector は screening review tool として value あり、auto-cleanup source としては 概念適用不能。
STEP 1947 corrigendum: sample row 11 SnstRealComparison.lean の A verdict は over-eager without file-content-check、実際は STEP 1228e substantive pilot with load-bearing evidence → 保留判定。
STEP 1947 sample 2 A verdicts のうち 1 件のみ実行: data/research-radar/karpathy-llm-wiki-watch.json → data/research-radar/_archive/2026-09-11/ へ git mv (destructive but reversible、not delete)。もう 1 件 (SnstRealComparison) は STEP 1949 corrigendum で 保留。
git mv で逆方向復元可能consumption-mode.ts に ARCHIVE_PATH_REGEXES 新設 = /^data\/[^/]+\/latest\.json$/ (single-level subdirectory の domain snapshot)。 Test 45 → 49/49 PASS。 併せて (a) SnstRealComparison KEEP IN PLACE 判定 formalize (STEP 1949 corrigendum 継続、substantive pilot preserve)、(c2) Lean import-graph parser v0.5 defer 明文化、(d) CF Pages verify: HTTP 200 + 20 STEP-refs grep hits on live site。
scripts/build-daily-banner.ts に 「📉 孤立度計 device (v0.4)」 pill entry 追加、7-STEP arc summary + numbers を top page (`/`) の highlights に expose。 mirror md5 一致、slice cap 12 内。
collect.ts に readdirSync(dir).sort() 追加 + defaultConfig の maxFiles: 20000 → 50000。 2 runs 完全一致 (RUIN set diff = 0 paths)、determinism 達成。
★★ Cap-based measurement artifact 判明: v0.4 reported RUIN=389 は 大幅 cap-truncated。 v0.5 full scan で 真値 RUIN = 1,555 と判明 (+12,885 previously-unseen artifacts、+1,166 landed in RUIN)。 v0.1 → v0.4 -70.6% RUIN narrative は 部分 cap-artifact、 archive-detection の 実効性 (scoped-out 1,176 → 10,196 = 8.6x) は 実存 だが raw count 比較は overclaim。
計 in-scope 22,689 (scoped-out 10,196)。v0.5 = 装置 fair baseline (deterministic + full-tree scan)。
v0.5 deterministic RUIN 1,555 から stratified sample n=50 review → A=0/50 (0%) + B=50/50 (100%) + C=0 + D=0 = actionable rate 0% (95% CI 0-7% by rule of 3)。
Verdict resolution: 38 filename heuristics = B (per-STEP exhibits + topic proofs + MathlibPrep + historical data)、12 D UNKNOWN → batch grep で 11 files → B、1 file BakerSeparationAttempt.lean hits=0 → file-content-check で substantive pilot 判明 (STEP 1275 sub-2、Eric Merle Lean 4 conditional deps、load-bearing Rei arc) → B。 STEP 1949 SnstRealComparison pattern の再発、file-content-check discipline (pp) 無条件必須 が再確認。
Device 大転換 finding: precision (100%) と cleanup value (~0%) は独立次元、Rei per-STEP methodology + append-only 学問体系 で 残 RUIN は 実質全て intentional preservation、low-hanging fruit (karpathy STEP 1950) は既 picked。Device role shift: cleanup guidance (0%) → measurement / audit (100% precise) / methodology characterization / discipline enforcement (2 retroactive corrigendum trigger)。
Device role shift の 実装: append-only timeline.json + orphan-gauge-append-history.ts script + 📊 audit dashboard page (inline SVG line chart、cap-artifact ⚠ marker、entries table)。 Time series monitoring tool として device を 位置づけ直し、cleanup guidance value 増加 は 主張しない (STEP 1955 finding 遵守)。
timeline.json schema v0.1 → v0.2: 追加 optional per-entry fields = correctedBy: <runId> (superseded → dashboard 側で faded/strikethrough) + deprecated: bool (dashboard hides by default、opt-in toggle で表示可)。 v0.1 entries 互換 (additive only)。 Append script: --supersedes <runId> + --deprecate <runId> flags 追加、 past entry の 値 (counts 等) は 変更しない (append-only immutability preserved)、 annotation metadata のみ 追加。 Smoke test: step-1954-run2 を step-1958-v06-beta-smoke で supersedes、 annotation 正常書込。 Dashboard v0.6-beta: filter bar 追加 (「cap-artifact 除外 = v0.5+ のみ」 + 「deprecated 表示」 checkbox、 localStorage 永続化)、 CSS + JS で superseded/deprecated 表示 marker、 chart + table 別スコープ (chart は filtered、 table は 全 entries with 表示 class)。 CI hook は 「実 use case 発生時」 の user directive 尊重で **defer** (現状 → v0.7 candidate、 起票 trigger = 「藤本さん daily check」等の実 use case)、 npm alias や scheduled task も 同 dependency。
npm i # 一度だけ npx tsx scripts/orphan-gauge.ts # default (30 日閾値、v0.2 archive 除外) npx tsx scripts/orphan-gauge.ts --days 7 # 鮮度しきい値 npx tsx scripts/orphan-gauge.ts --min-refs 2 # 参照ありと見なす下限 npx tsx scripts/orphan-gauge.ts --targets data,src # 対象ディレクトリ npx tsx scripts/orphan-gauge.ts --include-human # 人が読む成果物も測定対象に npx tsx scripts/orphan-gauge.ts --json out.json # JSON レポートを書き出す # v0.3-lite (STEP 1949): lean4-mathlib pilot detector (screening review 用) npx tsx scripts/lean4-mathlib-pilot-detector.ts --tsv pilots.tsv --json pilots.json
npm run test:step1926 → 45/45 PASS (v0.1 29 + v0.2 archive detection 15 + T26b defaultConfig)。v0.2 test cases: 4 dir-prefix + 8 filename patterns positive + 3 negative (must-not-be-archive) tests。
| module | 役割 |
|---|---|
| src/aios/orphan-gauge/types.ts | Quadrant / ConsumptionMode / Artifact / GaugeConfig / GaugeReport 型定義 |
| src/aios/orphan-gauge/consumption-mode.ts | path pattern による「人が読む/機械が読む/履歴」heuristic 分類 (較正未着手) |
| src/aios/orphan-gauge/reference-graph.ts | explicit-path literal 出現による参照抽出 (lower bound) |
| src/aios/orphan-gauge/classify.ts | (updated?, referenced?) → Quadrant 交差分類 + report 集約 |
| src/aios/orphan-gauge/collect.ts | file tree walk (hard-exclude: node_modules / .git / dist 等) |
| src/aios/orphan-gauge/index.ts | public API: gauge(cfg) + defaultConfig(root) |
mode field で expose される。