fix(telemetry): rollup snapshot 保持 + promote 判定を確定月に限定 (Phase C+D, ADR-062) - #337
Merged
Conversation
snapshot は集計実行時点の状態でしかなく、月次カデンツでは月 M の確定を M+1 の初回実行が行う。旧 resolve_month は確定する全月に実行時点 (M+1) の snapshot を刻んでいたため、月 M 中ずっと無効化して いた機構を M+1 で再有効化すると「M は enabled + 発火 0」と確定し、無効化月を誤って promote streak に 算入し得た。 resolve_snapshot を新設し確定 rollup に「月中最後の観測」を保持する: - 当月: 毎回現在 snapshot で再スタンプ - 過去月の確定で prev (月中の未確定 rollup) がある: prev.snapshot を保持 - 過去月で prev が無い: 現在 snapshot で代用 snapshot が証明するのは (a) 月中実行があればその最後の時点、(b) 無ければ確定時点の状態に精緻化。 リグレッション固定テスト 3 件追加 (disabled 月が確定で化けない / prev 無し月 / 当月の再スタンプ)。 ADR-062 § 決定 4 amendment + 帰結の留意点を更新。 ADR-062
「連続 2 か月発火 0」(ユーザー決定事項 1) の忠実実装として、閾値到達判定から未確定当月を除外する。 未確定当月は zero_streak 表示と current_month_partial フラグには含める (参考表示) が、閾値カウントから 除外する (confirmed_streak = zero_streak - partial)。 旧実装は未確定当月も算入していたため実効閾値が「確定 1 か月 + 当月 20 数日」で成立し得た。これにより leak の promote 最早時期は「2 つの完全なゼロ月が確定した後の初回実行」になる (現挙動比で約 1 か月 後ろ倒し = 仕様の忠実化)。 既存テスト current_partial_month_flagged を NotMet 期待に更新 (確定 1 + 部分 1)、確定 2 + 部分 1 → Promote を追加。ADR-062 § 決定 4 amendment。 ADR-062
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthrough月次 rollup は過去月の既存 snapshot を保持し、未保存時は現在値を代用します。当月は現在値で再計算します。promote 判定は確定月だけを対象にし、未確定当月は表示用 streak に限定します。 Changes月次 ROI 判定
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Contributor
🤖 PR Monitor 分析 (GitHub Actions バックストップ)
Applicable Findings (Critical / High / Major)該当なし (レビュー指摘 0 件) Applicable Findings (Medium 以下)該当なし Filtered (not applicable)該当なし 軽量サマリー (diff 概要)
次のアクション
|
This was referenced Jul 31, 2026
aloekun
added a commit
that referenced
this pull request
Aug 1, 2026
* docs(todo): 月次 ROI レビュー (PR #335-338) post-merge feedback 採用候補を todo14 に登録 #336/#337/#338 の post-merge-feedback レポートの採用候補 (6 系統 13 項目、dedup 済) を docs/todo14.md の現在進行中に 4 エントリとして登録する。ユーザー承認済み (全系統 = todo.md 登録)。 - cli-telemetry-report コード堅牢化 + 回帰テスト (系統1+2、resolve_snapshot 越境テスト等) - telemetry 時間語義・不変条件・degraded 運用の文書補強 (系統3+5) - jj workspace/bookmark semantics 文書 + pr-monitor 回帰テスト (系統4) - 開発ワークフロー規約の補強 (系統6) ADR-033 準拠 (本文に順位番号を書かず PR/Tier 参照のみ)。優先度 table (todo-summary2.md) の 行追加はユーザー判断のため本コミットでは行わない。実装は後日。 * docs(todo): CodeRabbit PR #339 指摘を反映 (checked_sub 計画化 / 検出限界の表記整合) - verdict.rs 計画を debug_assert! 単独から checked_sub ベースの明示処理 + 診断用 debug_assert! 併設に変更 (release build でも underflow 防止)。 完了基準に release-mode 判定保証の回帰テストを追加 - pr-monitor 回帰テストの bullet を「既知の false negative を明示記録、 検出改善はスコープ外」に修正し、対処案の seal 方針と表記を整合
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
月次レビュー dogfood 追加アクション C + D。判定候補(verdict)の 2 つの意味論的欠陥を修正する(同一 crate の意味論変更のため 1 PR にまとめる)。
C: rollup 確定時に月中最後の snapshot を保持
snapshot は集計実行時点の状態でしかなく、月次カデンツでは月 M の確定を M+1 の初回実行が行う。旧
resolve_monthは確定する全月に実行時点(M+1)の snapshot を刻んでいたため、月 M 中ずっと無効化していた機構を M+1 で再有効化すると「M は enabled + 発火 0」と確定し、無効化月を誤って promote streak に算入し得た。resolve_snapshotを新設し確定 rollup に「月中最後の観測」を保持prev.snapshot保持 / prev なし: 現在 snapshot で代用D: promote 判定を確定月に限定
「連続 2 か月発火 0」(ユーザー決定事項 1)の忠実実装として、閾値到達判定から未確定当月を除外する(
zero_streak表示とcurrent_month_partialは維持、confirmed_streak = zero_streak - partial)。旧実装は未確定当月も算入し、実効閾値が「確定 1 か月 + 当月 20 数日」で成立し得た。current_partial_month_flaggedを NotMet 期待に更新(確定 1 + 部分 1)、確定 2 + 部分 1 → Promote を追加検証
cargo test --workspace/cargo clippy --workspace --all-targets -- -D warnings全通(rust-lint-test PASS)ADR-062
🤖 Generated with Claude Code
Summary by CodeRabbit
機能改善
ドキュメント