Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions docs/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,37 @@

> **運用ルール**: 各タスクには **やろうとしたこと / 現在地 / 詰まっている箇所** を必ず書く。完了タスクは ADR か仕組みに反映後、このファイルから削除する。過去の経緯は git log で追跡可能。
>
> **本ファイル + [docs/todo2.md](todo2.md) の使い分け**: todo.md がサイズ ~40KB に達したため新規タスクは todo2.md に記録。新セッションでは両方を確認すること。
> **本ファイル + [docs/todo2.md](todo2.md) の使い分け** (PR #83 T3-2 で恒久化、2026-04-28 強化):
> - **docs/todo.md**: 既存タスクの編集・完了削除専用。新規タスクは追加しない (~50KB 閾値内に維持し Claude Code 読み取り安定性を確保)
> - **docs/todo2.md**: 新規タスクの追加先。todo.md のサイズ管理のため新規エントリは原則本ファイルへ
> - 例外: 既存 todo.md タスクと **同一ファイル / 同一コンポーネント** を編集する密結合タスクは todo.md に追加可 (例: `~/.claude/rules/common/git-workflow.md` 配下のグローバルルール群)
> - **新セッションでは両方を確認すること**

---

## 推奨実行順序サマリー (2026-04-27 更新、PR #82 post-merge-feedback 反映後)
## 推奨実行順序サマリー (2026-04-28 更新、PR #83 post-merge-feedback 反映後)

開発環境の作業効率への貢献度を基準にした推奨実行順序。詳細は各タスク冒頭の **「実行優先度」** 行を参照。

| 順位 | Tier | タスク | ファイル | 工数 | 依存 |
|---|---|---|---|---|---|
| 1 | 🚀 Tier 1 | git-workflow.md jj 運用節更新 (Tier 3 finding) | todo.md | XS | なし |
| 2 | 🚀 Tier 1 | **個人開発ブランチ保護方針 ADR/グローバルルール明文化 (T3-1)** | todo.md | XS | なし |
| 3 | 🚀 Tier 1 | Markdown linter (markdownlint-cli2) hook 統合 (Tier 1 finding) | todo.md | Small | なし (順位 8 の前提) |
| 4 | 🚀 Tier 1 | ADR-032 PR-pre: GitHub Branch Protection 整備 | todo2.md | 設定のみ | 順位 2 |
| 5 | 🔧 Tier 2 | 週次レビュー (ADR-031) Phase B 実装 | todo.md | 中-高 | なし (順位 8 の compensating check 前提) |
| 6 | 🔧 Tier 2 | **reviewer facet 改善 (review-simplicity / review-security の DRY/YAGNI/security 軸明文化、T3-combined)** | todo2.md | S | なし |
| 7 | 🔧 Tier 2 | ADR-032 PR-broken-link: broken-link-check 統合 | todo2.md | Small-中 | 順位 3 (clean baseline) |
| 8 | 💎 Tier 3 | ADR-032 PR-β: 実装 (enabled=false default) | todo2.md | 中-高 | 1, 2, 3, 4, 5, 7 |
| 9 | 💎 Tier 3 | ADR-032 PR-γ: enablement (1 行 flip) | todo2.md | XS | 順位 5 dogfood + 順位 8 |
| 10 | 💎 Tier 3 | ADR-032 PR-δ: dogfood + メトリクス検証 | todo2.md | (運用) | 順位 9 |
| 11 | 🧹 Tier 4 | ADR-030 Phase E/F: 旧機構廃止 + dogfood | todo.md | 中 | なし (cleanup) |
| 12 | ⏳ Tier 5 | (追って) ADR-030 の takt-test-vc 反映 | todo.md | 中 | 順位 11 Phase F |

**戦略**: Tier 1 (1〜4) を 1〜2 セッションで片付け → Tier 2 (5〜7) で D の前提を埋める → Tier 3 (8〜10) で D を land。Tier 4-5 は cleanup / 外部展開で daily efficiency への直接効果は小さい。

**順位 1-2 はグローバルルール (`~/.claude/rules/common/`) 整備で並列可**。順位 6 (reviewer facet 改善) は全 PR の review 精度を即時向上させ、Tier 2 内で順位 5/7 と並列実施可能。
| 3 | 🚀 Tier 1 | **却下済み変更の再適用防止グローバルルール明文化 (PR #83 T3-1)** | todo2.md | XS | なし |
| 4 | 🚀 Tier 1 | Markdown linter (markdownlint-cli2) hook 統合 (Tier 1 finding) | todo.md | Small | なし (順位 9 の前提) |
| 5 | 🚀 Tier 1 | ADR-032 PR-pre: GitHub Branch Protection 整備 | todo2.md | 設定のみ | 順位 2 |
| 6 | 🔧 Tier 2 | 週次レビュー (ADR-031) Phase B 実装 | todo.md | 中-高 | なし (順位 9 の compensating check 前提) |
| 7 | 🔧 Tier 2 | **reviewer facet 改善 (review-simplicity / review-security の DRY/YAGNI/security 軸明文化、T3-combined)** | todo2.md | S | なし |
| 8 | 🔧 Tier 2 | ADR-032 PR-broken-link: broken-link-check 統合 | todo2.md | Small-中 | 順位 4 (clean baseline) |
| 9 | 💎 Tier 3 | ADR-032 PR-β: 実装 (enabled=false default) | todo2.md | 中-高 | 1, 2, 3, 4, 5, 6, 8 |
| 10 | 💎 Tier 3 | ADR-032 PR-γ: enablement (1 行 flip) | todo2.md | XS | 順位 6 dogfood + 順位 9 |
| 11 | 💎 Tier 3 | ADR-032 PR-δ: dogfood + メトリクス検証 | todo2.md | (運用) | 順位 10 |
| 12 | 🧹 Tier 4 | ADR-030 Phase E/F: 旧機構廃止 + dogfood | todo.md | 中 | なし (cleanup) |
| 13 | ⏳ Tier 5 | (追って) ADR-030 の takt-test-vc 反映 | todo.md | 中 | 順位 12 Phase F |

**戦略**: Tier 1 (1〜5) を 1〜2 セッションで片付け → Tier 2 (6〜8) で D の前提を埋める → Tier 3 (9〜11) で D を land。Tier 4-5 は cleanup / 外部展開で daily efficiency への直接効果は小さい。

**順位 1-3 はグローバルルール (`~/.claude/rules/common/` または `~/.claude/CLAUDE.md`) 整備で並列可**。順位 7 (reviewer facet 改善) は全 PR の review 精度を即時向上させ、Tier 2 内で順位 6/8 と並列実施可能。

---

Expand All @@ -39,7 +44,7 @@
>
> **本タスクの位置づけ**: ADR-029 を partial supersede する新 ADR-030 を起案し、takt 経由の決定論的フィードバック機構へ移行する。本タスク完了で post-merge-feedback skill / pending file / Stop hook (hooks-stop-feedback-dispatch) はすべて廃止される。
>
> **実行優先度**: 🧹 **Tier 4 (順位 11/12)** — Phase A〜D は merged 済で workflow は機能。残る Phase E (旧機構廃止) / Phase F (dogfood) は cleanup 中心で daily efficiency への直接効果は小。Tier 1〜3 完了後の片付けタイミングで実施推奨。
> **実行優先度**: 🧹 **Tier 4 (順位 12/13)** — Phase A〜D は merged 済で workflow は機能。残る Phase E (旧機構廃止) / Phase F (dogfood) は cleanup 中心で daily efficiency への直接効果は小。Tier 1〜3 完了後の片付けタイミングで実施推奨。

#### 背景: ADR-029 の構造的欠陥 (PR #74 dogfood で実証)

Expand Down Expand Up @@ -221,7 +226,7 @@ dogfood では PR #74 マージ後、pending file が `dispatched` で stuck し

> **参照**: 上位タスク「マージ後フィードバック機構の決定論化」の Phase F 完了が前提。元の 1-F (ADR-014 本採用化 + takt-test-vc 反映) は ADR-014 が ADR-030 で Superseded されるため scope 変更。
>
> **実行優先度**: ⏳ **Tier 5 (順位 12/12)** — 派生プロジェクトへの展開で本リポジトリへの効果はゼロ。順位 11 (ADR-030 Phase F) 完了後の任意タスク。
> **実行優先度**: ⏳ **Tier 5 (順位 13/13)** — 派生プロジェクトへの展開で本リポジトリへの効果はゼロ。順位 12 (ADR-030 Phase F) 完了後の任意タスク。

- **やろうとしたこと**: 本プロジェクトで ADR-030 機構が安定稼働 (Phase F dogfood 完了) した後、takt-test-vc へ機構ごとバックポート
- **現在地**: 上位タスクの Phase F 完了待ち
Expand All @@ -235,7 +240,7 @@ dogfood では PR #74 マージ後、pending file が `dispatched` で stuck し
>
> **計画ファイル参照**: `~/.claude/plans/1-docs-todo-md-askuserquestion-validated-orbit.md` (本タスク策定時の plan、新セッションでも同じ判断を再現可能)
>
> **実行優先度**: 🔧 **Tier 2 (順位 5/12)** — ADR-032 (docs-only fast path) の compensating check 前提。順位 8 (ADR-032 PR-β) 着手前に Phase B dogfood 1 回成功が必要。architecture facet の rubric に docs 整合性観点 (ADR/symbol drift, terminology drift, docs-code 整合, docs 重複/不整合) を含めること。
> **実行優先度**: 🔧 **Tier 2 (順位 6/13)** — ADR-032 (docs-only fast path) の compensating check 前提。順位 9 (ADR-032 PR-β) 着手前に Phase B dogfood 1 回成功が必要。architecture facet の rubric に docs 整合性観点 (ADR/symbol drift, terminology drift, docs-code 整合, docs 重複/不整合) を含めること。

#### 背景: 既存レビューの空白

Expand Down Expand Up @@ -419,7 +424,7 @@ SessionStart hook (hooks-session-start.exe 拡張)

> **参照**: `.claude/feedback-reports/81.md` の Tier 1 finding (post-merge-feedback による独立提案)
>
> **実行優先度**: 🚀 **Tier 1 (順位 3/12)** — daily efficiency への即効性が極大。`.md` 編集毎に自動 `--fix` で CodeRabbit Nitpick が消え、PR レビュー時間も間接短縮。**ADR-032 (docs-only fast path) の前提条件** (push 前に markdownlint 違反が解消されることが docs-only skip の前提)。順位 1-2 (グローバルルール 2 件) と並列または直後に実施推奨。**PR #82 post-merge-feedback で MD028 / MD040 / MD058 が初期 rule set として明示された** (T1-1 + T1-2 sub-task として吸収)。
> **実行優先度**: 🚀 **Tier 1 (順位 4/13)** — daily efficiency への即効性が極大。`.md` 編集毎に自動 `--fix` で CodeRabbit Nitpick が消え、PR レビュー時間も間接短縮。**ADR-032 (docs-only fast path) の前提条件** (push 前に markdownlint 違反が解消されることが docs-only skip の前提)。順位 1-3 (グローバルルール 3 件) と並列または直後に実施推奨。**PR #82 post-merge-feedback で MD028 / MD040 / MD058 が初期 rule set として明示された** (T1-1 + T1-2 sub-task として吸収)。

#### 背景

Expand Down Expand Up @@ -468,7 +473,7 @@ SessionStart hook (hooks-session-start.exe 拡張)

> **参照**: `.claude/feedback-reports/81.md` の Tier 3 finding (post-merge-feedback による独立提案)
>
> **実行優先度**: 🚀 **Tier 1 (順位 1/12)** — 工数 XS (数行追記)、グローバルルールなので **全プロジェクト** で即時効果。完了すれば AI が commit 分離を自動判断 (本セッションで実証された必要性の恒久化)。**最初に着手すべき**。順位 2 (ブランチ保護方針 ADR) も同じ ~/.claude/rules/common/ への追記なので並列実施推奨
> **実行優先度**: 🚀 **Tier 1 (順位 1/13)** — 工数 XS (数行追記)、グローバルルールなので **全プロジェクト** で即時効果。完了すれば AI が commit 分離を自動判断 (本セッションで実証された必要性の恒久化)。**最初に着手すべき**。順位 2 (ブランチ保護方針) / 順位 3 (却下済み変更再適用防止) も同じ ~/.claude/ 配下への追記なので並列実施推奨

#### 背景

Expand Down Expand Up @@ -517,7 +522,7 @@ SessionStart hook (hooks-session-start.exe 拡張)
>
> **参照**: `.claude/feedback-reports/82.md` の Tier 3 #1 finding
>
> **実行優先度**: 🚀 **Tier 1 (順位 2/12)** — 工数 XS (数行追記)、グローバルルールなので **全プロジェクト** で即時効果。順位 1 (git-workflow.md jj 運用節更新) と同じ ~/.claude/rules/common/ への追記のため **並列実施推奨**。次回 docs-only fast path や類似の責務分離設計で 7 回反復のコストを回避できる。
> **実行優先度**: 🚀 **Tier 1 (順位 2/13)** — 工数 XS (数行追記)、グローバルルールなので **全プロジェクト** で即時効果。順位 1 (git-workflow.md jj 運用節更新) と同じ ~/.claude/rules/common/ への追記のため **並列実施推奨**。次回 docs-only fast path や類似の責務分離設計で 7 回反復のコストを回避できる。

#### 背景

Expand Down
60 changes: 52 additions & 8 deletions docs/todo2.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@
>
> **計画ファイル参照**: `~/.claude/plans/1-docs-todo-md-askuserquestion-validated-orbit.md` (本タスク策定時の plan、新セッションでも同じ判断を再現可能)
>
> **実行優先度**: タスク全体は **🚀 Tier 1 〜 💎 Tier 3 に分散** (Phase ごとに優先度が異なる)。
> - Phase pre (branch protection): **Tier 1 (順位 3/10)** — 設定のみ、A/B と並列可
> - Phase α: 既存 todo.md「週次レビュー (ADR-031)」エントリ参照 — **Tier 2 (順位 4/10)**
> - Phase broken-link: **Tier 2 (順位 5/10)** — 順位 2 (markdownlint) の clean baseline 後が望ましい
> - Phase β (実装、enabled=false): **Tier 3 (順位 6/10)** — 全前提揃ってから
> - Phase γ (enablement): **Tier 3 (順位 7/10)** — 順位 4 dogfood 後の 1 行 flip
> - Phase δ (dogfood): **Tier 3 (順位 8/10)** — 実 docs PR で検証
> **実行優先度**: タスク全体は **🚀 Tier 1 〜 💎 Tier 3 に分散** (Phase ごとに優先度が異なる、2026-04-28 採番更新)。
> - Phase pre (branch protection): **Tier 1 (順位 5/13)** — 設定のみ、順位 1-4 と並列可
> - Phase α: 既存 todo.md「週次レビュー (ADR-031)」エントリ参照 — **Tier 2 (順位 6/13)**
> - Phase broken-link: **Tier 2 (順位 8/13)** — 順位 4 (markdownlint) の clean baseline 後が望ましい
> - Phase β (実装、enabled=false): **Tier 3 (順位 9/13)** — 全前提揃ってから
> - Phase γ (enablement): **Tier 3 (順位 10/13)** — 順位 6 dogfood 後の 1 行 flip
> - Phase δ (dogfood): **Tier 3 (順位 11/13)** — 実 docs PR で検証
>
> **最大 payoff**: Phase γ enable 後、docs PR 所要時間 ~15min → ~30sec (30 倍速)。daily efficiency への貢献は本リポジトリ随一だが、**前提依存が多いため近道はない**。

Expand Down Expand Up @@ -366,7 +366,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/82.md` の Tier 3 #2-4 findings (3 件を統合)
>
> **実行優先度**: 🔧 **Tier 2 (順位 6/12)** — 全 PR の review 精度を即時向上、false positive iteration の削減効果。Tier 2 内で順位 5 (週次レビュー Phase B) / 順位 7 (ADR-032 PR-broken-link) と並列実施可能。Effort S × 3 = ~S。
> **実行優先度**: 🔧 **Tier 2 (順位 7/13)** — 全 PR の review 精度を即時向上、false positive iteration の削減効果。Tier 2 内で順位 6 (週次レビュー Phase B) / 順位 8 (ADR-032 PR-broken-link) と並列実施可能。Effort S × 3 = ~S。

#### 背景

Expand Down Expand Up @@ -407,3 +407,47 @@ Phase 2 (任意、段階的緩和)
#### 詰まっている箇所

なし (Effort S、既存 instruction への追記のみ)

### 却下済み変更の再適用防止グローバルルール明文化 (PR #83 T3-1)

> **動機**: 2026-04-27 セッションで T3-combined を todo2.md に移動する Edit 中、AI が無意識に直前にユーザーが却下した CodeRabbit MD040 finding (` ``` ` → ` ```text `) を付随的に適用してしまった。即座に revert したが、構造的に防ぐルールがあれば防げる事案。post-merge-feedback (PR #83) が Tier 3 として独立に提案。
>
> **本タスクの位置づけ**: グローバルルール (`~/.claude/CLAUDE.md` または `~/.claude/rules/common/coding-style.md`) への追記。Claude/AI の動作ルールとして「ユーザーが現セッションで明示却下した変更は、後続の Edit / Write 操作でも適用しない」を明文化。
>
> **参照**: `.claude/feedback-reports/83.md` の Tier 3 #1 finding
>
> **実行優先度**: 🚀 **Tier 1 (順位 3/13)** — 工数 XS、グローバルなので全プロジェクト即時効果。本セッションでの事実 (MD040 fence 不意追加) の恒久化。順位 1 (git-workflow.md) / 順位 2 (ブランチ保護方針) と並列実施可能 (~/.claude/ 配下のグローバルルール群)。

#### 背景

- 2026-04-27 セッションで PR #82 の 4 CodeRabbit findings を「全件却下」と判断
- 直後の T3-combined 移動 Edit で、AI が old_string と new_string を組み立てる際「整合性のため」MD040 fence の修正 (` ``` ` → ` ```text `) を含めてしまった
- 即座に revert したが、AI が「便利だから」「ついでに」と却下済み修正を再適用するリスクは構造的に存在
- post-merge-feedback (PR #83) が同一セッション transcript から本事象を独立に検出
- ユーザー意思決定の override に該当する重大なリスク (本来の意図と異なる変更が混入する)

#### 設計決定 (案)

- 配置先: 第一候補 `~/.claude/CLAUDE.md` の Personal Preferences 配下 (Decision Handling 等の新規セクション)。第二候補 `~/.claude/rules/common/coding-style.md`
- 第一候補の根拠: Claude 自身の動作ルールに該当するため CLAUDE.md (グローバル指示) が自然
- ルール文 (案):
> **却下済み変更の再適用禁止**: セッション内でユーザーが明示的に却下した変更 (CodeRabbit findings の reject、design choice の reject など) は、後続の Edit / Write 操作で **付随適用してはならない**。AI が「整合性のため」「ついでに」「ベストプラクティスだから」として再適用するのも禁止。例外: ユーザーが新たに同セッションで明示的に採用を表明した場合のみ。
- スコープ: 全プロジェクトの全セッションに即時適用

#### 作業計画

- [ ] 配置先決定 (CLAUDE.md vs coding-style.md、第一候補は CLAUDE.md)
- [ ] 該当ファイルにルール文を追記
- [ ] memory `feedback_*.md` で関連する判断 (今回の MD040 reverted 経緯) があれば参照を追加
- [ ] 動作確認: 次回セッションで却下済み変更の再適用が発生しないか観察
- [ ] 本 todo2.md エントリを削除

#### 完了基準

- ~/.claude/ 配下に「却下済み変更の再適用禁止」ルールが明記される
- 次回セッションで AI が却下済み変更を付随適用しない (ユーザー明示指示なしで挙動変化を確認)
- 順位 1 / 順位 2 と並列実施で 1 セッション内に完了 (~/.claude/ 配下のグローバルルール 3 件を一括整備)

#### 詰まっている箇所

なし (Effort XS、追記のみ)