docs(todo): queue 棚卸し + todo9 → todo11 分割 + 順位 177 優先度引上げ - #197
Conversation
本 PR は以下 4 つの作業を 1 コミットに統合: ## A. PR #196 post-merge-feedback 採用 2 件 (順位 193, 194 登録) PR #196 (Bundle 195-FB) post-merge-feedback 8 件のうち 2 件採用、6 件却下/様子見。 採用 (todo10.md に entry 追加、todo-summary.md table に行追加): - 順位 193 (T2): Companion helper group 署名整合 compile-time validation test - 順位 194 (T3): development-workflow.md \"1. Plan First\" に Codification 重複確認 step 追記 却下/様子見の詳細は .claude/feedback-reports/196.md 参照。 ## B. queue 棚卸し (順位 ≤ 100 の 32 件を audit) 8 件削除 + 7 件改訂で queue の signal/noise 改善: 削除 8 件 (既存 land 確認、または動機失効): - 順位 41 (Bundle Y2 効果定量計測): 動機の主軸失効 (Bundle Z 完成 + Z2 不採用) - 順位 42, 43, 46 (rate-limit auto-retry 系): PR #97/#113/#129/#185 段階 land 完了 - 順位 45 (--list-findings Rust モード): PR #101 で land 済 - 順位 57 (Aggregation cap integration test): PR #171 で land 済 - 順位 93 (coding-style.md partial fix 例追加): ~/.claude/rules/common/ coding-style.md に既に section 存在 - 順位 97 (with_num_ctx serialization test): lib.rs:494 で mockito test 実体存在 改訂 7 件 (Status update 2026-06-06 を front-matter に追加、現状反映): - 順位 11: ADR-018 park / ADR-030 短命プロセス移行後の再現確認が前段 - 順位 19: ADR-037/043/PR #194 land 後の残余 case baseline 観測が前段 - 順位 27: Phase D-7 = PR #154 land 済を反映 - 順位 38: ADR-031 採用昇格済 (PR #192) → Bundle W/X land のみ残依存 - 順位 40: PR #175 push-runner bookmark_check 実装済 → skill 側は二重防御に縮小 - 順位 51: 採用案 C (fix.md instruction 追加) は land 済、残作業 = dogfood 観測のみ - 順位 92: ADR-038 採用昇格済 (PR #156) で Phase d 運用入り、動機書き換え cross-reference 修復: - 順位 49: 旧依存 Bundle a Sub-PR 2 (順位 42/43/46) 消滅を反映 - 順位 61: 旧依存 順位 45 land 済を反映 ## C. todo9.md → todo11.md 分割 todo9.md が 75KB / 890 行に到達し読み取り安定性閾値 (50KB) 超過のため分割: - todo9.md (37KB / 454 行): 既存ルール仕組み化バンドル (順位 146-151) + 週次 レビュー拡張 (順位 152-154) を保持 - todo11.md (41KB / 453 行、新規): PR-specific follow-up entries 10 件 (順位 157, 160, 161, 162, 163, 165, 170, 171, 172, 173) theme-based split で意味的分離 + 両ファイルとも 50KB 閾値以下に収まる。 todo-summary.md table の file 参照を Python script で一括更新 (10 件)、 todo-summary.md 冒頭の \"追加先ファイル\" 説明を todo10.md に更新。 ## D. 順位 177 優先度引上げ PostToolUse hook ファイルサイズ検出 task が 4 回目の同型観測に到達 (PR #133 + #172 + #186 + 本セッション = Very High frequency)。CLAUDE.md code-review.md \"同型 finding の閾値判定\" (3 観測 = Tier 1 昇格) を超え systemic risk 閾値到達。 3 箇所同期更新: - todo10.md entry 本体に Status update 2026-06-06 blockquote 追加、優先度を \"Tier 1\" → \"Tier 1 (優先実装)\" に格上げ - todo-summary.md table 行で Tier 列を太字 + 注記、dependency 列に urgency note - todo-summary.md 末尾の戦略 note に \"直近優先 (2026-06-06 ユーザー指示)\" 段落を新設、Bundle 195-FB-Followup (順位 193 + 194) の次の PR で消化推奨と specific call-out ## 統計 - 10 ファイル変更 (1 新規) - ~670 lines insertions, ~910 lines deletions (net ~240 行削減) - 全 todo*.md が 50KB 閾値以下に収まる (todo9: 37KB, todo10: 36KB, todo11: 41KB) ## 参照 - .claude/feedback-reports/196.md (採否確定 commit、PR #196 由来) - memory feedback_post_merge_feedback_adoption_requires_user_approval per ユーザー承認済 - memory feedback_todo_no_history (削除は痕跡なし、コメントマーカー不使用) - ADR-035 (docs-only PR 評価ポリシー) - ADR-033 (採番管理簡素化、順位 renumber は避けて semantic markers で表現)
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughPR ChangesTask documentation reorganization
推定レビュー工数🎯 2 (Simple) | ⏱️ ~12 minutes 関連する可能性のある PR
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
…順位 177) (#198) PostToolUse Edit / Write 直後にファイルサイズ閾値超過を検出して分割を促す mechanical layer を実装。ファイル分割を user 判断ベース → mechanical layer に移管し、認知負荷削減 + 早期検出 を実現する。 ## 背景 4 PR の同型観測 (Very High frequency) で systemic risk 閾値到達: - PR #133: todo.md → todo2.md split - PR #172: todo8.md → todo9.md split - PR #186: todo9.md → todo10.md split - PR #197: todo9.md → todo11.md split (本日 land) 順位 177 として todo10.md に登録済み、PR #197 で Tier 1 (優先実装) に格上げ。 ユーザー指示 (2026-06-07) で次の PR で消化と決定。 ## 設計 配置: option B = 既存 hooks-post-tool-linter (generic linter) に Layer 0.5 として統合。 option A (新 binary) に対する優位性: - 新 binary 追加なし → deploy 簡素 (Effort S 寄り) - PostToolUse hook 数の最小化 (1 PR push で発火する hook 数を抑制) - ADR-039 bounded lifetime dogfood サイクルを最短で開始可能 ## 実装 ### Layer 0.5 配置 main() を 4 layer helper に refactor (関数長 50 行制限内に収まる構造): - Layer 0: UTF-8 整合性 (既存) - Layer 0.5: file_size_check (新規、metadata-only) ★ - Layer 1: 正規表現 custom-rules (既存) - Layer 2: 外部ツール pipeline (既存) ### Config schema [post_tool_use.file_size_check] section (ADR-039 opt-in pattern 準拠): - enabled = false (default OFF) - threshold_bytes = 51200 (50KB、Claude Code 読み取り安定性閾値) - paths = ["docs/**/*.md", "src/**/*.rs"] (default 対象 glob) - touch_trigger = true (ratchet、既存超過は触られるまで grandfather) Kill-switch: enabled = false で完全停止。 ### Pure function design check_file_size_threshold(file, size_bytes, config) は I/O フリーの純粋関数として実装、 file system access は呼び出し側 (run_file_size_layer) に分離。tests が deterministic に 書け、memory feedback_test_dry_antipattern に従い各 variant 独立 setup が trivial。 ### touch_trigger ratchet の MVP 制限 touch_trigger = false (strict mode = 全 enabled paths を毎回スキャン) は ADR-039 bounded lifetime dogfood 後の判定に倒し、MVP では config field 受理のみ (true/false 同挙動)。 3-5 PR の dogfood 観測後に default-ON 昇格 or strict mode 実装 or 却下を判定。 ## ADR-007 amendment (Layer 0.5 追記) ADR-007 § Layer 0.5 追記 section を新設し、file_size_check が Q1/Q2/Q3 判断フロー対象外 であることを codify。同型 (metadata-only、content 非依存) の future check は同 Layer 0.5 に追加することで regex / AST 層との責務境界を維持する原則を明文化。 ## Tests 8 variant 独立 setup (memory feedback_test_dry_antipattern 適用): 1. enabled=false で短絡 (kill-switch 動作確認) 2. paths glob 不一致で skip 3. size 閾値内で skip 4. size 超過で feedback emit 5. docs/todo* に対する recovery hint 文脈別出し分け 6. paths が空配列の場合 skip 7. touch_trigger=false が MVP では true と同挙動 8. Windows backslash path の forward-slash 正規化 全 8 test pass、既存 141 test との non-regression 確認済 (cargo test 149/149 passed)。 cargo clippy --workspace -- -D warnings clean。 ## Dogfood threshold=30720 で hooks-config.toml を temporarily enable、docs/todo10.md (38155 bytes) に hook 発火を実観測: [file-size-check] docs/todo10.md: ファイルサイズ 38155 bytes が threshold 30720 bytes (= 30.0 KB) を超過しています。ファイル分割を推奨します (docs/todo*.md の場合は新 todo<N+1>.md を新設して entry を移管). 小ファイル (docs/todo5.md 11909 bytes) は no-op を確認。dogfood 後 enabled=false / threshold=51200 に revert 済 (production default = opt-in). ## 関連 docs 更新 - docs/todo10.md: 順位 177 entry 削除 (実装完了) - docs/todo-summary.md: 順位 177 table 行 + 「直近優先 2026-06-07」call-out 段落 削除 - docs/adr/adr-007-custom-linter-layer-boundary.md: § Layer 0.5 追記 新設 ## 参照 - memory feedback_pipeline_over_rules: rule → hook 切替の体系適用 - ADR-039: experimental feature 標準パターン (opt-in + kill-switch + bounded lifetime) - ADR-007: custom-linter layer boundary (本 PR で Layer 0.5 追記) - 順位 102 (PR #148 land): paths glob filter helper を再利用
…exception codify (PR #203 follow-up) (#204) * docs(todo): 順位 198 を PR #203 T3-1 採用で 3 観測目に昇格 PR #203 post-merge-feedback Tier 3 #1 (ADR-NNN: Timestamp invariant safety) を採用。 analyzer は新規 entry 提案だが、順位 198 が既に同 ADR 提案として登録済 (PR #199 T3-2) のため、新規追加ではなく既存 entry の data point 強化として merge した。 主な変更: - 動機: 2 件観測 (Medium) → 3 件観測 (High) に Frequency 昇格 - 本タスクの位置づけ: PR #203 T3-1 採用情報 + 既存 entry 強化の判断根拠を追記 - 参照: .claude/feedback-reports/203.md Tier 3 #1 + PR #203 を追加 - 設計決定 § 1 コンテキスト: PR #203 hooks-session-start port を観測実例に追加 - 派生プロジェクト適用: "順位 197 で実装予定" → "PR #203 で実装済" に更新 - 作業計画: PR #96 / #199 / #203 の 3 観測すべてを ADR 実装時に inline cite 順位 194 (task 着手前 grep 確認 rule、PR #196 採用) の初実践例となる。 analyzer の重複提案を運用層で吸収する明示的 pattern。 * docs(adr-039): mechanical lint exception を § 1.b として明記 + checklist 上位判定追加 PR #203 post-merge-feedback で「順位 177 file_size_check が ADR-039 機械適用で default OFF にされ、user 期待と乖離した」事象を発見。順位 147 file_length lint (default ON 固定) と順位 177 file_size_check (default OFF) の asymmetry が 標準パターンの over-application を示した。 主な変更: § 1 (Config opt-in) の改訂 - 「適用対象を明示」する section に再構成 - 「behavior の妥当性が不確定な experimental feature」と適用範囲を限定 - 「採否判定 (採用 / 却下 / 継続) のフェーズが必要なもの」を判定基準として追加 § 1.b 新設 (mechanical lint default ON 許容) - 4 条件 (non-blocking / 決定論 / scope 限定 / recovery hint 明確) すべて満たす機能を § 1 対象外として default ON 配布を許容 - 該当する実装例: 順位 147 file_length lint / 順位 177 file_size_check - 該当しない例: post-merge-feedback (ADR-014/030) / weekly-review (ADR-031) / local-llm-finding-classification (ADR-038) - PR #197 順位 177 の誤適用を本 PR (PR #203 由来) で訂正と明記 § 新規 feature 追加時 checklist (4 点 → 5 点に拡張) - § 0 「上位判定」を最初に追加: 「そもそも § 1 適用対象か?」 - § 1.b 4 条件すべて満たす → default ON で配布、4 点 checklist は skip - 1 つでも欠ける → 従来通り 4 点 mechanical checklist 実施 - 判断に迷う場合は conservative default (default OFF) を選択 - 本判定を skip して機械適用すると order-application 発生 (PR #197 で実観測) 由来: PR #203 post-merge-feedback で発見された systemic 問題への対応。 派生プロジェクトへの自動波及はなし (本 ADR は本リポジトリ専用、`~/.claude/rules/` 配下ではないため)。 * docs(adr-007): Layer 0.5 file_size_check 追記を削除 順位 177 file_size_check は ADR-007 で扱う「正規表現層 / AST 層」の判断フロー対象外で あり、metadata-only check (`std::fs::metadata.len()`) という性質上、独立した Layer 区分を設ける積極的理由がない。「Layer 0.5」概念を ADR に codify することで: - 後続の metadata-only check 追加時に Layer 0.5 への配置判断を毎回迫る - ADR-007 本体の Q1/Q2/Q3 判断フロー (regex / AST) との整合性が複雑化 - ADR-039 opt-in pattern 言及が「導入リスク」未定義のまま記載されている という systemic な over-abstraction の温床になっていた。本 PR で「順位 177 は単純な custom linter の一つとして扱う」方針 (ユーザー判断、2026-06-12) に従い、Layer 0.5 追記を削除する。今後 file_size_check 系の linter を追加する場合は ADR-007 の通常 判断フローに従い、必要なら都度 ADR 改訂で対応する。 * fix(hooks-config): file_size_check を default ON 化 + ADR 参照表記修正 ADR-039 § 1.b (mechanical lint 例外、本 PR で同時 codify) に従い、順位 177 file_size_check を default ON で配布する。順位 147 file_length lint と同 pattern。 主な変更: enabled = false → enabled = true - 4 条件 (non-blocking / 決定論的閾値 / scope 限定 / recovery hint 明確) すべて満たすため - additionalContext warning のみで block しない (failure mode が無害) - paths glob で scope 宣言的に限定 - todo*.md / Rust source に明示的 recovery hint コメント修正: - "ADR-039 § 3 opt-in pattern" → "ADR-039 § 1.b mechanical lint 例外" (§ 3 は bounded lifetime、opt-in は § 1。元コメントは誤参照) - "Layer 0.5" → "custom linter" (ADR-007 Layer 0.5 追記削除に追従) - 4 条件 (1.b 適用根拠) を明示 - 順位 147 file_length lint を同類例として cite - bounded lifetime dogfood の記述を削除 (mechanical lint は dogfood phase 不要) 影響: - 既存 grandfather (>50KB 既存ファイル) は touch されるまで warning なし - 触られた >50KB ファイル (例: docs/todo10.md) は次の Edit/Write で warning が出る - 本 PR で todo10.md の split (Commit 5) を同時実施し、初回 dogfood も完了させる * docs(todo): todo10.md を分割して file_size_check 50KB threshold 内に収める 本 PR で順位 177 file_size_check を default ON 化したことにより、touched で 50KB 超のファイル (= 本 PR 着手時の docs/todo10.md = 57KB) に warning が出る状態になった。 本 commit で todo10.md から PR #185 〜 PR #196 era の 8 エントリを新規 docs/todo12.md に分離し、todo10.md を 27KB まで縮小して threshold 内に収める。同時に hook の dogfood としても機能 (順位 177 が想定する recovery flow = 新 todo<N+1>.md 新設 + entry 移管 が実際に機能することを実観測)。 主な変更: docs/todo12.md (新規 158 行) - 順位 176 (PR #185 T2-#4): check-ci-coderabbit format variant fixture 追加 - 順位 178 (週次レビュー S02): state.rs behavioral invariant test - 順位 179 (週次レビュー S03): rate-limit retry decision boundary test - 順位 180 (週次レビュー C01): lib-report-formatter markdown pipe escape - 順位 181 (Phase D D-A): aggregate-weekly findings.json raw JSON - 順位 182 (Phase D D-B): /weekly-review skill 重複検出 (簡易 grep) - 順位 193 (PR #196 T2-1): Companion helper group 署名整合 compile-time test - 順位 194 (PR #196 T3-5): development-workflow.md grep step 追記 - 専用ファイル (新規追加先ではない)、todo11.md と同 role docs/todo10.md (-377 行、57KB → 27KB) - 上記 8 エントリを削除 - preamble に todo12.md 分離の経緯を記述 - 新セッション確認対象を「12 file」→「13 file」に更新 docs/todo-summary.md - preamble に todo12.md の説明を追記 - 8 行の「ファイル」列を todo10.md → todo12.md に変更 (sed 一括置換) 由来: 本 PR (PR #204) の hooks-config.toml 変更 (commit 4) で file_size_check default ON 化に伴う初回 dogfood。順位 177 設計の recovery flow が機能した実証 データとなる。 技術メモ: sed -i '13,390d' で 8 entries 削除、Edit tool で 380 行の old_string 構築は実用的でないため Bash 経路を選択 (ユーザーの「適切な粒度」要件と整合、 独立 commit に集約)。
Summary
本セッションで実施した docs-only 作業 4 つを 1 PR に統合:
削除 8 件 (棚卸し根拠)
6cd931652c58)51328e8c9873)~/.claude/rules/common/coding-style.mdに既に section 存在 (PR #94/#111/#132 cite 込み)src/lib-ollama-client/src/lib.rs:494で mockito test 実体存在cross-reference 修復: 順位 49 (旧依存 Bundle a Sub-PR 2 消滅)、順位 61 (旧依存 順位 45 land 済)。
改訂 7 件 (Status update 2026-06-06)
todo9.md 分割の構造
todo-summary.md 冒頭の「追加先ファイル」明記を todo10.md に更新 (新規エントリは引き続き todo10.md へ、todo11.md は split 専用)。preamble 数詞 (十一つ→十二つ、todo2-10.md→todo2-11.md) を 7 ファイル分一括同期 (cli-docs-lint preamble check 経由で検出 + Python script で batch fix)。
順位 177 優先度引上げ (3 箇所同期)
🚀 Tier 1→🚀 Tier 1 (優先実装)に格上げ統計
Pre-push-review
pre-push-reviewworkflow APPROVE (1 iteration, 7m 56s)。docs-only PR として ADR-035 評価ポリシー適用、code-equivalent 変更なし。Test plan
参照
.claude/feedback-reports/196.md(PR Bundle 195-FB: jj revset hardcode lint rule + helper parameterize #196 post-merge-feedback の採否確定)feedback_todo_no_history(削除は痕跡なし、コメントマーカー不使用)feedback_pnpm_create_pr_body(multi-line body は --body-file で渡す)Summary by CodeRabbit
Documentation
Chores