docs(weekly-review): ADR-031 を起案 (Phase A)#81
Conversation
週次プロジェクト全体レビューパイプライン (whole-tree review の自己改善ループ) の設計を ADR-031 として起案。docs only PR。 - docs/adr/adr-031-weekly-review-pipeline.md: 新規 ADR (試験運用) - レビュー scope 軸での既存 3 パイプラインの空白を特定 (cross-PR ドリフト / ADR 違反蓄積 / 累積複雑度) - 検討した選択肢 A〜D、hybrid 構成 (D) を採用 - ADR-030 の 3 層分離パターン継承の 4 例目として位置付け、L1 reminder hook / L2 takt workflow / L3 skill の役割分担を規定 - ADR-027 / 022 / 028 / 030 との関係性を整理 - アンチパターン (review-simplicity を共通化しない / must-run 化しない / Reminder を強制起動しない) を明記 - docs/todo.md: 「週次プロジェクト全体レビューパイプラインの導入」を新規エントリとして追加 (Phase A〜F の作業計画 + PR 分割方針 + 新セッション必読リスト) - CLAUDE.md: Architecture Decisions リストに ADR-031 リンクを追加 (試験運用)
ADR-031 起案 (Phase A) の作業項目を docs/todo.md から削除。 運用ルール「完了タスクは ADR か仕組みに反映後、todo.md から削除する」に従う。 ADR 本体および CLAUDE.md への反映は前 commit (Phase A) で実施済み、 Phase B 以降の作業項目は引き続き残す。
📝 WalkthroughWalkthrough新しいADR-031を導入し、セッション開始フック、taktワークフロー、スキルを連携させた週次全体レビューパイプラインを定義する。3層制御フローにより、簡潔性・セキュリティ・アーキテクチャ面の自動レビューと承認判断を実装。 Changes
Sequence DiagramsequenceDiagram
participant SessionStart as SessionStart Hook
participant FileSystem as File System<br/>(.claude/weekly-review-*)
participant TaktWorkflow as Takt Workflow<br/>(weekly-review)
participant Facets as Review Facets<br/>(Simplicity/Security/Architecture)
participant PendingJSON as Pending JSON<br/>(findings)
participant Skill as /weekly-review Skill
participant User as User<br/>(AskUserQuestion)
participant TodoMD as docs/todo.md
SessionStart->>FileSystem: Check .claude/weekly-review-last-run.json mtime<br/>& .md.failed markers
FileSystem-->>SessionStart: Prior run detected or failure found
SessionStart->>SessionStart: Prompt /weekly-review in additionalContext
TaktWorkflow->>Facets: Run 3 parallel facets<br/>(Simplicity, Security, Architecture)
Facets->>Facets: Analyze whole codebase
Facets-->>TaktWorkflow: Return findings per facet
TaktWorkflow->>PendingJSON: Aggregate findings into JSON<br/>& markdown report
TaktWorkflow->>FileSystem: Persist findings + success/failure markers
PendingJSON-->>Skill: Load pending JSON artifacts
Skill->>User: Use AskUserQuestion for<br/>finding-by-finding decisions<br/>(adopt/reject/defer)
User-->>Skill: User decisions
Skill->>TodoMD: Append "週次レビュー採用 (YYYY-MM-DD)"<br/>section with accepted findings
TodoMD-->>Skill: Updated todo document
Skill->>FileSystem: Mark completion in metadata
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
🚥 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/todo.md (1)
221-221: Fenced code block に言語指定子を追加することを推奨Markdown ベストプラクティスとして、fenced code block には言語指定子を付けることが望ましいです。このブロックはテキストベースの図表なので
textを指定できます。♻️ 提案する修正
-``` +```text /weekly-review (skill, manual トリガー) │ Phase 1: 7 日チェック + dry-run? 判定Based on learnings, MD038 (no-space-in-code) should not be enforced inside fenced code blocks, but MD040 (fenced-code-language) is a different rule that applies to the opening fence itself.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/todo.md` at line 221, Fenced code block in the snippet starting with the lines containing "/weekly-review (skill, manual トリガー)" and "Phase 1: 7 日チェック + dry-run? 判定" should include a language specifier; update the opening fence from ``` to ```text so the block is ```text ... ``` to satisfy MD040 (fenced-code-language) and make the block explicitly text.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@docs/todo.md`:
- Line 221: Fenced code block in the snippet starting with the lines containing
"/weekly-review (skill, manual トリガー)" and "Phase 1: 7 日チェック + dry-run? 判定"
should include a language specifier; update the opening fence from ``` to
```text so the block is ```text ... ``` to satisfy MD040 (fenced-code-language)
and make the block explicitly text.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 4de04576-6d72-423d-818d-82cb18f02198
📒 Files selected for processing (3)
CLAUDE.mddocs/adr/adr-031-weekly-review-pipeline.mddocs/todo.md
…t path) タスク化 (#82) * docs(todo): PR #81 post-merge-feedback の Tier 1 / Tier 3 finding をタスク化 PR #81 マージ後の post-merge-feedback report (.claude/feedback-reports/81.md) で挙げられた以下 2 件を採用し、docs/todo.md の「現在進行中」に追加。 - Tier 1: Markdown linter (markdownlint-cli2) の PostToolUse hook 統合 ADR-002 の linter composition を .md に拡張。push pipeline 統合では なく hook 方式を採用し edit 時の自動 --fix で違反が CodeRabbit に 届く前に解消する。 - Tier 3: グローバルルール git-workflow.md の jj 運用節更新 todo.md 完了タスク削除を独立 commit で行う手順を明記。本セッション でユーザーから明示指示を受けた事象を恒久化し、全プロジェクトの新 セッションで同判断を再現可能にする。 * docs(todo): docs/todo2.md を新設し ADR-032 (docs-only fast path) タスクを記録 docs/todo.md がファイルサイズ約 40KB に達し、Claude Code の読み取り 安定性 (50KB 超で不安定化) を考慮して新規タスクは分割ファイルに記録。 todo2.md の初回エントリとして「docs-only PR 高速パスの導入 (ADR-032 起案 + 実装)」を追加。本セッションで策定した plan (~/.claude/plans/1-docs-todo-md-askuserquestion-validated-orbit.md) の要点を背景・設計決定・作業計画・前提情報・完了基準として記録。 Phase pre → α → broken-link → β → γ → δ の sequential 依存と、 新セッションで最初に確認すべきファイル一覧を含めることで、別セッション での作業再開を容易にする。 * docs(todo): 推奨実行順序 (Tier 1〜5) を todo.md / todo2.md に反映 開発環境の作業効率への貢献度を基準にした推奨実行順序を整理し、両ファイル に明示する。新セッションでも次に何をすべきかが一目で判断できるようにする。 - docs/todo.md 冒頭に「推奨実行順序サマリー」表 (順位 1〜10) を追加 - docs/todo2.md 冒頭に todo.md サマリーへの相互参照を追加 - 各タスクの metadata に「実行優先度: Tier N (順位 X/10)」行を追加し、 Tier 判断の根拠 (依存・工数・即効性) を簡潔に記載 - ADR-032 は Phase ごとに Tier が分散するため、sub-phase 別の順位 (PR-pre/α/broken-link/β/γ/δ) を一覧化 順位の決定基準: - 工数の小ささ × 即効性 × 依存の少なさ → Tier 1 (1〜3) - ADR-032 の前提条件として必要 → Tier 2 (4, 5) - payoff は最大だが前提依存が多い → Tier 3 (6〜8) - daily efficiency への直接効果が小さい cleanup → Tier 4 (9) - 派生プロジェクト展開で本リポジトリへの効果なし → Tier 5 (10) * docs(todo): ADR-032 Phase pre から Required reviewers を削除 (個人開発 anti-pattern) ユーザーフィードバック: 個人開発 + コーディングエージェント前提では Required reviewers (人間レビュー必須) は anti-pattern。実装/テスト/ PR 作成が AI で自動化される一方、人間レビューだけが唯一の同期処理と して律速になるため、ブロックは CI (Required status checks) に集約 する。 主な変更: - Phase pre から「Required reviewers: 人間 (or 自分) を最低 1」を削除 - 役割分担を明記: 即時 CI / 非ブロッキング CodeRabbit (センサー) / 遅延・包括 ADR-031 週次レビュー / event-driven 人間レビュー - Phase 2 の検討余地として「path-based selective review」「強制条件 追加 (codecov 等)」を追記 - 関連箇所の整合性確保: 「GitHub のマージ制御の正しい分離」セクション と「ユーザー判断記録」テーブルを同じ方針で更新 設計の本質:「全変更をレビューする」ではなく「リスクの高い変更だけ 止める」。機械で止められるものは全部機械に寄せる。
Summary
Commit 構成
docs(weekly-review): ADR-031 を起案 (Phase A)docs(todo): ADR-031 Phase A 完了に伴い todo.md から該当 phase を削除Test plan
/weekly-reviewskill + SessionStart hook 拡張, Phase D-E = e2e 検証 + dogfood)関連 ADR
edit: false統一、副作用範囲)Summary by CodeRabbit
リリースノート