Skip to content

docs(weekly-review): ADR-031 を起案 (Phase A)#81

Merged
aloekun merged 2 commits intomasterfrom
weekly-review-adr-031
Apr 26, 2026
Merged

docs(weekly-review): ADR-031 を起案 (Phase A)#81
aloekun merged 2 commits intomasterfrom
weekly-review-adr-031

Conversation

@aloekun
Copy link
Copy Markdown
Owner

@aloekun aloekun commented Apr 26, 2026

Summary

  • 週次プロジェクト全体レビューパイプラインの設計を ADR-031 として起案 (試験運用)
  • 既存 3 パイプライン (pre-push / post-pr / post-merge) はすべて diff 起点で、cross-PR 視点 / ADR 違反蓄積 / 累積複雑度の空白を埋める設計
  • ADR-030 の 3 層分離パターン (機械的 = Rust / AI 並列 = takt / ask-based = skill or hook) の 4 例目として位置付け
  • 検討した選択肢 A〜D (既存 post-pr 拡張 / skill 単独 / takt 単独 / hybrid) を比較し、hybrid (D) を採用
  • アンチパターン (review-simplicity を whole-tree 用と共通化しない / must-run 化しない / Reminder を強制起動しない) を明記
  • docs/todo.md に Phase B〜F の作業計画 + 新セッション必読リストを記録、CLAUDE.md にリンク追加

Commit 構成

commit 内容
docs(weekly-review): ADR-031 を起案 (Phase A) 新規 ADR + todo.md に作業計画 entry 追加 + CLAUDE.md にリンク
docs(todo): ADR-031 Phase A 完了に伴い todo.md から該当 phase を削除 Phase A の作業項目を todo.md から削除 (運用ルール「完了タスクを残さない」に従う)

Test plan

  • ADR-031 本文のレビュー (ステータス / コンテキスト / 検討した選択肢 / 決定 / アンチパターン / 影響)
  • CLAUDE.md の Architecture Decisions リスト追加位置の確認
  • docs/todo.md「週次プロジェクト全体レビューパイプラインの導入」エントリの作業計画と Phase 分割方針の確認
  • 後続 PR スコープの確認 (Phase B = takt workflow + 3 facets + architecture-reviewer persona, Phase C = /weekly-review skill + SessionStart hook 拡張, Phase D-E = e2e 検証 + dogfood)

関連 ADR

  • 補完対象: ADR-027 (cross-PR architectural review の空白を埋める)
  • 整合確認: ADR-022 (edit: false 統一、副作用範囲)
  • パターン継承元: ADR-030 (3 層分離の 4 例目)
  • 範囲外: ADR-028 (本 ADR は内部 artifact のみで対象外)

Summary by CodeRabbit

リリースノート

  • ドキュメント
    • 新しいアーキテクチャ決定ドキュメント(ADR-031)を追加し、週次全体レビューパイプラインの仕様を定義しました。このパイプラインは、簡潔性、セキュリティ、アーキテクチャの3つの観点から定期的に検査を実行します。
    • 実装計画および検証手順をドキュメントに記載しました。

aloekun added 2 commits April 27, 2026 04:09
週次プロジェクト全体レビューパイプライン (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 以降の作業項目は引き続き残す。
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 26, 2026

📝 Walkthrough

Walkthrough

新しいADR-031を導入し、セッション開始フック、taktワークフロー、スキルを連携させた週次全体レビューパイプラインを定義する。3層制御フローにより、簡潔性・セキュリティ・アーキテクチャ面の自動レビューと承認判断を実装。

Changes

Cohort / File(s) Summary
Documentation Index
CLAUDE.md
ADR-031の新規インデックスエントリを追加し、週次レビューパイプラインドキュメントにリンク。
Architecture Decision Record
docs/adr/adr-031-weekly-review-pipeline.md
週次全体レビューパイプラインの詳細ADRを新規作成。Rustフック、taktワークフロー、スキルの3層制御フロー、findings JSON スキーマ、失敗復旧メカニズム、アンチパターン制約を定義。
Implementation Planning
docs/todo.md
ADR-031実装のための包括的なtodoエントリを追加。実装フェーズ(B~F)、成功・失敗マーカー、検証ステップ、完了基準を記載。

Sequence Diagram

sequenceDiagram
    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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PRタイトルは、新しいADR-031(週次プロジェクト全体レビューパイプライン)の起案とPhase Aの完了という、変更セットの主要な内容を正確に反映しており、簡潔で明確です。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 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

📥 Commits

Reviewing files that changed from the base of the PR and between 58d2626 and 4b51aff.

📒 Files selected for processing (3)
  • CLAUDE.md
  • docs/adr/adr-031-weekly-review-pipeline.md
  • docs/todo.md

@aloekun aloekun merged commit d597b8d into master Apr 26, 2026
1 check passed
@aloekun aloekun deleted the weekly-review-adr-031 branch April 26, 2026 20:21
aloekun added a commit that referenced this pull request Apr 27, 2026
…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 のマージ制御の正しい分離」セクション
  と「ユーザー判断記録」テーブルを同じ方針で更新

設計の本質:「全変更をレビューする」ではなく「リスクの高い変更だけ
止める」。機械で止められるものは全部機械に寄せる。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant