STEP 2174 · orphan-gauge v0.6.1 · 2026-09-21 · rei-aios-fe

孤立度計 v0.6.1 — flip stats + rename

STEP 2171 (v0.6 = D + #1) の site page を chat-Claude が review、 5 items 上げ。 v0.6.1 は うち item 2 (象限 flip 件数 = 決定材料) と item 3 (ctime naming が POSIX ctime と混同) の 対応。 (c) %at/%ct 対応 は empirical evidence なし で 削除 (chat-Claude 自己訂正 accept)。 mtime axis 置換 は 「full-repo flip@30d = 0.021%」 で 影響 極低 と 実測、 依然 実施しない

Attribution: [via 藤本さん / orig: chat-Claude Code review 2026-09-21 v0.6.1 scope refinement (keep a+b, delete c)]
Route: chat-Claude STEP 2171 site review → 5 items 提示 → 藤本さん explicit go 「D+#1 land 後 に v0.6.1 起工」 → chat-Claude 追加 3 items refine (72 件 欠落 説明 + full-repo verify 要 + (c) 削除) → rei-aios-fe tab で 実装 → 90/90 test PASS → 本 page (未 review status)。
Prior: STEP 2171 v0.6 (D + #1) · STEP 1926 v0.1–v0.6-beta arc · STEP 1909 simulator

chat-Claude review 5 items → v0.6.1 scope

#指摘私 verifyv0.6.1 対応
1 「mtime > commit = checkout reset」 解釈 危うい (uncommitted / rebase も混ざる) ✅ 深化: raw ms 精度 measurement で mtime < git が dominant (~70%) = 「commit 直後 未 touch」 が 通常 pattern。 v0.6 の 単純化は 完全に不正確 FIXED direction wording refine、 「heuristic 参考のみ、 分類影響 は flipStats を 参照」 と 明記
2 決定材料 = 象限 flip 件数 (Δ 件数 ではなく) ✅ verified: full-repo flip@30d = 5 / 23,902 = 0.021%、 src/-only = 2 / 1,894 = 0.11% IMPLEMENTED (a) CLI + JSON に flip 件数 (7/30/90d 3 threshold) + direction + per-target breakdown 追加
3 ctime = POSIX ctime (inode 変更時刻) と混同 ✅ true IMPLEMENTED (b) gitCommitTime に統一。 ctime* 名 は deprecated alias で 一時保持 (backward-compat)
4 test 件数 算数 (25+13=64 は誤り) ✅ 私 report 誤り: 正しくは 51 assertion + 13 = 64 (T# ラベル 27 個 と assertion 数 51 は 別 concept) CORRECTED (発話 訂正 済)
5 exit 1 で 呼出側 壊れる懸念 ✅ blast radius = zero (`orphan-gauge-append-history.ts` は `gauge()` library API 経由、 `process.exit` 通らず) NO-OP snapshot pipeline は 影響なし

chat-Claude 追加 3 items → 「(c) 削除」 の 決定

chat-Claude が 自身の 前 推測 (「mtime < commit = rebase/amend 由来 型」 の 想像) を 自己撤回: 「mtime < commit 時刻 が 0 件 (src/) or classification impact 0 件 (full-repo mtime<git=98 だが flip@30d 寄与 0) だったので、 %at/%ct 実装 の 根拠 なし」。 v0.6.1 scope から (c) 削除 = %at/%ct 対応。 record のみ 保持。
追加 3 items 統合:

v0.6.1 実装 (src/aios/orphan-gauge/)

実 repo 経験値 (v0.6.1、 src/ target)

象限 flip 件数 (mtime → git commit time 置換時 の 分類変化、 各閾値):
  threshold  |  stale→fresh  |  fresh→stale  |  total flips  |  % of in-scope
    7d       |       0       |       0       |       0       |    0.000%
   30d       |       0       |       2       |       2       |    0.106%  ← default
   90d       |       0       |       0       |       0       |    0.000%
  読み方: total flips が 小さいほど、 mtime 置換の classification impact が 小さい。

mtime vs git commit time 方向 (in-scope tracked、 heuristic 参考のみ):
  mtime > gitCommitTime :  564  (最終 commit 後 に触られた: 未 commit 編集 / editor save / 古い repo clone 後 touch)
  mtime < gitCommitTime : 1330  (最終 commit 以降 未 touch: 通常 pattern; commit call が file write より 数秒後 の 差)

per-target 内訳 (in-scope、 top-level dir 別):
  dir  | in-scope | divergent | mtime>c | mtime<c | flip@30d
  src  |     1894 |       456 |     564 |    1330 |        2

Full-repo verify (default targets = data,src,scripts,docs,test)

flip@30d = 5 / 23,902 in-scope = 0.021%。 flip@7d = 279 (1.17%) / flip@90d = 3 (0.013%)。 全 flip は fresh→stale 方向、 stale→fresh flip は 0 件 = mtime 置換 で 「見落としていた新しさ」 は 拾わない、 「もっと stale と 判定される」 だけ。 mtime axis 置換 の 優先度 は 極低 と 実証。 5 flip 具体例 (全 data/ 内): daily-sources.json (mtime 1.3d / git 30.6d), repo-discovery/crawl-log.txt (0.1d / 33.2d), research-radar/ccchallenge-state.json (0.34d / 124.4d), 他 2 件。

Test (90/90 PASS)

test setcountdomain
既存 (T1..T27 + T-V01..T-V20 + T-D01..07 + T-G01..06)~65v0.6 まで の carry-over (migration: skipGitCtimeskipGitCommitTime 等)
新 T-F01..T-F1010computeFlipStats: 3 threshold で synthetic 3-artifact に stale→fresh / fresh→stale / both-side / no-flip pattern verify + T-F10 = 分母 0 divide-by-zero 予防
新 T-D-DIR-01..033computeDirectionStats: mtimeNewer / ctimeNewer / equal 合算
新 T-P01..T-P1010computePerTargetStats: 2 dir (src + data) 3 artifact での in-scope + divergent + direction + flip@30d 全 field verify
新 T-G07/T-G082alias verify: computeCtimeDivergences === computeGitCommitTimeDivergences / ctimeCoverage === gitCommitTimeCoverage

Honest scope

主張する

主張しない

Failure mode (未来 Claude 用 dataset)

Pattern

v0.6 release 時 に direction を 「mtime > = checkout reset」 と 単純化した wording を CLI + type JSDoc に埋めた。 chat-Claude item 1 で 「危うい」 指摘後、 empirical verify で mtime < git が dominant (70%) の 通常 pattern と 判明。 単純化した ラベル は 「知っている 気にさせる 誤 heuristic」 = 誤った 決定材料化 の risk。

Prevention

統計 label の JSDoc + CLI text を 書く前 に 「この direction 単独 で 何 が 決まるか」 を 自問。 決まらない (今回 = flip 件数 が decisive) なら 「heuristic 参考のみ、 分類影響 は X を 参照」 と 明示、 単純解釈 の 埋め込み を 避ける。

Recovery

直後 の refine で label wording を 訂正 + 「direction ≠ flip」 note を CLI + JSDoc に 追加 (今回 対応)。 過去 record (site page STEP 2171) の wording も 順次 訂正 candidate (但し immutable record 原則 で retroactive edit は しない、 「STEP 2174 で 訂正」 note で forward-only)。

Related

chat-Claude review pattern (「私 の 推測 の 半分 は 外れていました」) の self-correction discipline = 5 items 全 verify 姿勢 の 良い 実例、 私 側 も 見習う。