diff --git a/docs/todo.md b/docs/todo.md
index e7dac65c..7840015c 100644
--- a/docs/todo.md
+++ b/docs/todo.md
@@ -12,7 +12,7 @@
---
-## 推奨実行順序サマリー (2026-04-28 更新、PR #88 post-merge-feedback 反映後)
+## 推奨実行順序サマリー (2026-04-29 更新、PR #89 post-merge-feedback 反映後)
開発環境の作業効率への貢献度を基準にした推奨実行順序。詳細は各タスク冒頭の **「実行優先度」** 行を参照。
@@ -22,34 +22,37 @@
| 2 | 🚀 Tier 1 | `cli-push-runner` jj bookmark 未設定 early-exit (PR #85 T1-3) | todo2.md | S | なし |
| 3 | 🚀 Tier 1 | PowerShell swallowed error custom_lint_rule (PR #85 T1-2) | todo2.md | XS | なし (ADR-007 拡張) |
| 4 | 🚀 Tier 1 | **Polling anti-pattern 検出ルール (PR #86 T1-1)** | todo2.md | XS | なし (PR #86 直接対策) |
-| 5 | 🚀 Tier 1 | **Stop hook の `pnpm lint:md` 統合 (PR #88 T1-1)** | todo3.md | XS | なし (PR #88 直接対策、順位 1 完了済の gap closure) |
+| 5 | 🚀 Tier 1 | **Stop hook の `pnpm lint:md` 統合 (PR #88 T1-1)** | todo3.md | XS | なし (PR #88 直接対策、旧順位 1 完了済の gap closure) |
| 6 | 🚀 Tier 1 | **AI 生成一時スクリプト pattern の pre-push 検出 (PR #88 T1-2)** | todo3.md | Small | 順位 1 と関連 (要擦り合わせ) |
-| 7 | 🚀 Tier 1 | ADR-032 PR-pre: GitHub Branch Protection 整備 | todo2.md | 設定のみ | なし (依存タスクは完了済) |
-| 8 | 🔧 Tier 2 | 週次レビュー (ADR-031) Phase B 実装 | todo.md | 中-高 | なし (順位 15 の compensating check 前提) |
-| 9 | 🔧 Tier 2 | reviewer facet 改善 (review-simplicity / review-security の DRY/YAGNI/security 軸明文化) | todo2.md | S | なし |
-| 10 | 🔧 Tier 2 | ADR-032 PR-broken-link: broken-link-check + 内部アンカー検査 統合 | todo2.md | Small-中 | なし (clean baseline 確立済) |
-| 11 | 🔧 Tier 2 | `cli-pr-monitor` プロセス正常終了の integration test (PR #85 T2-2) | todo2.md | S | なし |
-| 12 | 🔧 Tier 2 | **`cli-pr-monitor` ポーリング延長 + 重複起動ロック (PR #88 T2-4)** ★ rate-limit critical | todo3.md | Medium | なし (順位 4 と補完) |
-| 13 | 🔧 Tier 2 | **`vitest` を devDependencies に固定 (PR #88 T2-3)** | todo3.md | Small | なし |
-| 14 | 🔧 Tier 2 | **`pnpm create-pr` 必須引数ヘルプ改善 (PR #88 T2-5)** | todo3.md | Small | なし |
-| 15 | 💎 Tier 3 | ADR-032 PR-β: 実装 (enabled=false default) | todo2.md | 中-高 | 7, 8, 10 |
-| 16 | 💎 Tier 3 | ADR-032 PR-γ: enablement (1 行 flip) | todo2.md | XS | 順位 8 dogfood + 順位 15 |
-| 17 | 💎 Tier 3 | ADR-032 PR-δ: dogfood + メトリクス検証 | todo2.md | (運用) | 順位 16 |
-| 18 | 💎 Tier 3 | 日付ベース見出しアンカー更新ルールのグローバル明文化 (PR #85 T3-1) | todo2.md | XS | なし |
-| 19 | 💎 Tier 3 | jj conflict リカバリ手順のグローバル明文化 (PR #85 T3-2) | todo2.md | XS | なし |
-| 20 | 💎 Tier 3 | `__` prefix scratch file 規約のグローバル明文化 (PR #85 T3-3) | todo2.md | XS | なし |
-| 21 | 💎 Tier 3 | **post-pr-monitor polling 禁止のグローバル明文化 (PR #86 T3-2)** | todo2.md | XS | なし |
-| 22 | 💎 Tier 3 | **todo.md 採番管理の簡素化 ADR 起案 (PR #86 T3-3)** | todo2.md | S | なし |
-| 23 | 🧹 Tier 4 | ADR-030 Phase E/F: 旧機構廃止 + dogfood | todo.md | 中 | なし (cleanup) |
-| 24 | ⏳ Tier 5 | (追って) ADR-030 の takt-test-vc 反映 | todo.md | 中 | 順位 23 Phase F |
-
-**戦略**: Tier 1 (1〜7) を 2〜3 セッションで片付け → Tier 2 (8〜14) で ADR-032 の前提を埋めつつ rate-limit 改善 (順位 12) → Tier 3 (15〜22) で ADR-032 を land + ドキュメント整備。Tier 4-5 (23〜24) は cleanup / 外部展開で daily efficiency への直接効果は小さい。
-
-**順位 9 (reviewer facet 改善) は全 PR の review 精度を即時向上させ、Tier 2 内で順位 8/10/11 と並列実施可能**。
-**順位 12 (cli-pr-monitor polling 改善) は rate-limit 直撃のため Tier 2 内で最優先候補**。順位 4 (Polling anti-pattern 検出) と補完関係。
+| 7 | 🚀 Tier 1 | **Markdown 非 ASCII GFM アンカー検出 lint rule (PR #89 T1-1)** | todo3.md | S | なし (PR #89 直接対策、順位 20 と二重防衛) |
+| 8 | 🚀 Tier 1 | ADR-032 PR-pre: GitHub Branch Protection 整備 | todo2.md | 設定のみ | なし (依存タスクは完了済) |
+| 9 | 🔧 Tier 2 | 週次レビュー (ADR-031) Phase B 実装 | todo.md | 中-高 | なし (順位 17 の compensating check 前提) |
+| 10 | 🔧 Tier 2 | reviewer facet 改善 (review-simplicity / review-security の DRY/YAGNI/security 軸明文化) | todo2.md | S | なし |
+| 11 | 🔧 Tier 2 | ADR-032 PR-broken-link: broken-link-check + 内部アンカー検査 統合 | todo2.md | Small-中 | なし (clean baseline 確立済) |
+| 12 | 🔧 Tier 2 | `cli-pr-monitor` プロセス正常終了の integration test (PR #85 T2-2) | todo2.md | S | なし |
+| 13 | 🔧 Tier 2 | **`cli-pr-monitor` ポーリング延長 + 重複起動ロック (PR #88 T2-4)** ★ rate-limit critical | todo3.md | Medium | なし (順位 4 と補完) |
+| 14 | 🔧 Tier 2 | **post-pr-review に rate-limit 自動検出 + 再トリガー (PR #89 T2-1)** ★ rate-limit critical | todo3.md | Medium | なし (順位 13 と補完) |
+| 15 | 🔧 Tier 2 | **`vitest` を devDependencies に固定 (PR #88 T2-3)** | todo3.md | Small | なし |
+| 16 | 🔧 Tier 2 | **`pnpm create-pr` 必須引数ヘルプ改善 (PR #88 T2-5)** | todo3.md | Small | なし |
+| 17 | 💎 Tier 3 | ADR-032 PR-β: 実装 (enabled=false default) | todo2.md | 中-高 | 8, 9, 11 |
+| 18 | 💎 Tier 3 | ADR-032 PR-γ: enablement (1 行 flip) | todo2.md | XS | 順位 9 dogfood + 順位 17 |
+| 19 | 💎 Tier 3 | ADR-032 PR-δ: dogfood + メトリクス検証 | todo2.md | (運用) | 順位 18 |
+| 20 | 💎 Tier 3 | 日付ベース見出しアンカー更新ルールのグローバル明文化 (PR #85 T3-1) | todo2.md | XS | なし |
+| 21 | 💎 Tier 3 | jj conflict リカバリ手順のグローバル明文化 (PR #85 T3-2) | todo2.md | XS | なし |
+| 22 | 💎 Tier 3 | `__` prefix scratch file 規約のグローバル明文化 (PR #85 T3-3) | todo2.md | XS | なし |
+| 23 | 💎 Tier 3 | **post-pr-monitor polling 禁止のグローバル明文化 (PR #86 T3-2)** | todo2.md | XS | なし |
+| 24 | 💎 Tier 3 | **todo.md 採番管理の簡素化 ADR 起案 (PR #86 T3-3)** | todo2.md | S | なし |
+| 25 | 🧹 Tier 4 | ADR-030 Phase E/F: 旧機構廃止 + dogfood | todo.md | 中 | なし (cleanup) |
+| 26 | ⏳ Tier 5 | (追って) ADR-030 の takt-test-vc 反映 | todo.md | 中 | 順位 25 Phase F |
+
+**戦略**: Tier 1 (1〜8) を 2〜3 セッションで片付け → Tier 2 (9〜16) で ADR-032 の前提を埋めつつ rate-limit 改善 (順位 13/14) → Tier 3 (17〜24) で ADR-032 を land + ドキュメント整備。Tier 4-5 (25〜26) は cleanup / 外部展開で daily efficiency への直接効果は小さい。
+
+**順位 10 (reviewer facet 改善) は全 PR の review 精度を即時向上させ、Tier 2 内で順位 9/11/12 と並列実施可能**。
+**順位 13/14 (rate-limit 系の 2 タスク) は rate-limit 直撃のため Tier 2 内で最優先候補**。順位 13 = ポーリング頻度全体の削減、順位 14 = review 単位での自動再トリガー、順位 4 (Polling anti-pattern 検出) を含む 3 層で rate-limit を抑制する設計。
**順位 5 (Stop hook の lint:md 統合) は旧順位 1 (Markdown linter hook 統合、PR #88 で merged) の gap closure**。**順位 6 (AI 生成一時スクリプト pattern 検出) は現順位 1 (push 前 untracked `__*` hook、PR #85 T1-4) と関連** (実装前に擦り合わせ要)。
-**順位 18-21 (T3 グローバルルール 4 件) は `~/.claude/` 配下への XS 追記なので並列実施推奨**。
-**順位 22 (採番管理簡素化 ADR) は本 table の cross-reference 維持コストを構造的に解消するメタタスク**。
+**順位 7 (Markdown 非 ASCII anchor 検出 lint rule) と順位 20 (日付ベース見出しアンカー更新ルール) は二重防衛** (順位 7 = 決定論的検出、順位 20 = 編集時のガイドライン)。
+**順位 20-23 (T3 グローバルルール 4 件) は `~/.claude/` 配下への XS 追記なので並列実施推奨**。
+**順位 24 (採番管理簡素化 ADR) は本 table の cross-reference 維持コストを構造的に解消するメタタスク** (PR #88/#89 で連続して 30+ 箇所の renumber が発生し負債が顕在化)。
---
@@ -61,7 +64,7 @@
>
> **本タスクの位置づけ**: ADR-029 を partial supersede する新 ADR-030 を起案し、takt 経由の決定論的フィードバック機構へ移行する。本タスク完了で post-merge-feedback skill / pending file / Stop hook (hooks-stop-feedback-dispatch) はすべて廃止される。
>
-> **実行優先度**: 🧹 **Tier 4 (順位 23/24)** — Phase A〜D は merged 済で workflow は機能。残る Phase E (旧機構廃止) / Phase F (dogfood) は cleanup 中心で daily efficiency への直接効果は小。Tier 1〜3 完了後の片付けタイミングで実施推奨。
+> **実行優先度**: 🧹 **Tier 4 (順位 25/26)** — Phase A〜D は merged 済で workflow は機能。残る Phase E (旧機構廃止) / Phase F (dogfood) は cleanup 中心で daily efficiency への直接効果は小。Tier 1〜3 完了後の片付けタイミングで実施推奨。
#### 背景: ADR-029 の構造的欠陥 (PR #74 dogfood で実証)
@@ -243,7 +246,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 (順位 24/24)** — 派生プロジェクトへの展開で本リポジトリへの効果はゼロ。順位 23 (ADR-030 Phase F) 完了後の任意タスク。
+> **実行優先度**: ⏳ **Tier 5 (順位 26/26)** — 派生プロジェクトへの展開で本リポジトリへの効果はゼロ。順位 25 (ADR-030 Phase F) 完了後の任意タスク。
- **やろうとしたこと**: 本プロジェクトで ADR-030 機構が安定稼働 (Phase F dogfood 完了) した後、takt-test-vc へ機構ごとバックポート
- **現在地**: 上位タスクの Phase F 完了待ち
@@ -257,7 +260,7 @@ dogfood では PR #74 マージ後、pending file が `dispatched` で stuck し
>
> **計画ファイル参照**: `~/.claude/plans/1-docs-todo-md-askuserquestion-validated-orbit.md` (本タスク策定時の plan、新セッションでも同じ判断を再現可能)
>
-> **実行優先度**: 🔧 **Tier 2 (順位 8/24)** — ADR-032 (docs-only fast path) の compensating check 前提。順位 15 (ADR-032 PR-β) 着手前に Phase B dogfood 1 回成功が必要。architecture facet の rubric に docs 整合性観点 (ADR/symbol drift, terminology drift, docs-code 整合, docs 重複/不整合) を含めること。
+> **実行優先度**: 🔧 **Tier 2 (順位 9/26)** — ADR-032 (docs-only fast path) の compensating check 前提。順位 17 (ADR-032 PR-β) 着手前に Phase B dogfood 1 回成功が必要。architecture facet の rubric に docs 整合性観点 (ADR/symbol drift, terminology drift, docs-code 整合, docs 重複/不整合) を含めること。
#### 背景: 既存レビューの空白
diff --git a/docs/todo2.md b/docs/todo2.md
index e6f8e90a..877d55fa 100644
--- a/docs/todo2.md
+++ b/docs/todo2.md
@@ -19,12 +19,12 @@
> **計画ファイル参照**: `~/.claude/plans/1-docs-todo-md-askuserquestion-validated-orbit.md` (本タスク策定時の plan、新セッションでも同じ判断を再現可能)
>
> **実行優先度**: タスク全体は **🚀 Tier 1 〜 💎 Tier 3 に分散** (Phase ごとに優先度が異なる、2026-04-28 採番更新)。
-> - Phase pre (branch protection): **Tier 1 (順位 7/24)** — 設定のみ、依存タスクは完了済
-> - Phase α: 既存 todo.md「週次レビュー (ADR-031)」エントリ参照 — **Tier 2 (順位 8/24)**
-> - Phase broken-link: **Tier 2 (順位 10/24)** — Markdown linter (PR #88 で merged) の clean baseline 確立済のため即着手可
-> - Phase β (実装、enabled=false): **Tier 3 (順位 15/24)** — 全前提揃ってから
-> - Phase γ (enablement): **Tier 3 (順位 16/24)** — 順位 8 dogfood 後の 1 行 flip
-> - Phase δ (dogfood): **Tier 3 (順位 17/24)** — 実 docs PR で検証
+> - Phase pre (branch protection): **Tier 1 (順位 8/26)** — 設定のみ、依存タスクは完了済
+> - Phase α: 既存 todo.md「週次レビュー (ADR-031)」エントリ参照 — **Tier 2 (順位 9/26)**
+> - Phase broken-link: **Tier 2 (順位 11/26)** — Markdown linter (PR #88 で merged) の clean baseline 確立済のため即着手可
+> - Phase β (実装、enabled=false): **Tier 3 (順位 17/26)** — 全前提揃ってから
+> - Phase γ (enablement): **Tier 3 (順位 18/26)** — 順位 9 dogfood 後の 1 行 flip
+> - Phase δ (dogfood): **Tier 3 (順位 19/26)** — 実 docs PR で検証
>
> **最大 payoff**: Phase γ enable 後、docs PR 所要時間 ~15min → ~30sec (30 倍速)。daily efficiency への貢献は本リポジトリ随一だが、**前提依存が多いため近道はない**。
@@ -370,7 +370,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/82.md` の Tier 3 #2-4 findings (3 件を統合)
>
-> **実行優先度**: 🔧 **Tier 2 (順位 9/24)** — 全 PR の review 精度を即時向上、false positive iteration の削減効果。Tier 2 内で順位 8 (週次レビュー Phase B) / 順位 10 (ADR-032 PR-broken-link) / 順位 11 (cli-pr-monitor termination test) と並列実施可能。Effort S × 3 = ~S。
+> **実行優先度**: 🔧 **Tier 2 (順位 10/26)** — 全 PR の review 精度を即時向上、false positive iteration の削減効果。Tier 2 内で順位 9 (週次レビュー Phase B) / 順位 11 (ADR-032 PR-broken-link) / 順位 12 (cli-pr-monitor termination test) と並列実施可能。Effort S × 3 = ~S。
#### 背景
@@ -420,7 +420,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/85.md` Tier 1 #4
>
-> **実行優先度**: 🚀 **Tier 1 (順位 1/24)** — Small 工数、直近インシデントの直接対策。同種事故 (PR scope 外ファイル混入) の再発防止で、混入時の追加コスト (force-push + 再 review) を回避。
+> **実行優先度**: 🚀 **Tier 1 (順位 1/26)** — Small 工数、直近インシデントの直接対策。同種事故 (PR scope 外ファイル混入) の再発防止で、混入時の追加コスト (force-push + 再 review) を回避。
#### 設計決定 (案)
@@ -454,7 +454,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/85.md` Tier 1 #3
>
-> **実行優先度**: 🚀 **Tier 1 (順位 2/24)** — S 工数、daily efficiency への直接効果 (失敗 push 1 回あたり 2-3 分 + takt review token 消費を節約)。
+> **実行優先度**: 🚀 **Tier 1 (順位 2/26)** — S 工数、daily efficiency への直接効果 (失敗 push 1 回あたり 2-3 分 + takt review token 消費を節約)。
#### 設計決定 (案)
@@ -487,7 +487,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/85.md` Tier 1 #2
>
-> **実行優先度**: 🚀 **Tier 1 (順位 3/24)** — XS 工数、ADR-007 既存基盤の拡張のみ。発生頻度は低いが該当時の影響大 (debug 困難化)。
+> **実行優先度**: 🚀 **Tier 1 (順位 3/26)** — XS 工数、ADR-007 既存基盤の拡張のみ。発生頻度は低いが該当時の影響大 (debug 困難化)。
#### 設計決定 (案)
@@ -522,7 +522,7 @@ Phase 2 (任意、段階的緩和)
>
> **参照**: `.claude/feedback-reports/85.md` Tier 2 #2
>
-> **実行優先度**: 🔧 **Tier 2 (順位 11/24)** — S 工数、回帰防止が主目的。発生頻度は低いが UX への直接影響あり (手動 kill 必要)。
+> **実行優先度**: 🔧 **Tier 2 (順位 12/26)** — S 工数、回帰防止が主目的。発生頻度は低いが UX への直接影響あり (手動 kill 必要)。
#### 設計決定 (案)
@@ -555,7 +555,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/85.md` Tier 3 #1
>
-> **実行優先度**: 💎 **Tier 3 (順位 18/24)** — XS 工数、グローバルなので全プロジェクト即時効果。順位 10 (ADR-032 PR-broken-link) の anchor link CI チェックと補完関係 (CI = 自動検出、本ルール = 編集時の予防)。
+> **実行優先度**: 💎 **Tier 3 (順位 20/26)** — XS 工数、グローバルなので全プロジェクト即時効果。順位 11 (ADR-032 PR-broken-link) の anchor link CI チェックと補完関係 (CI = 自動検出、本ルール = 編集時の予防)。
#### 設計決定 (案)
@@ -587,7 +587,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/85.md` Tier 3 #2
>
-> **実行優先度**: 💎 **Tier 3 (順位 19/24)** — XS 工数、知見の恒久化のみ。発生頻度は低いが、発生時の試行錯誤コストを削減。
+> **実行優先度**: 💎 **Tier 3 (順位 21/26)** — XS 工数、知見の恒久化のみ。発生頻度は低いが、発生時の試行錯誤コストを削減。
#### 設計決定 (案)
@@ -622,7 +622,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/85.md` Tier 3 #3
>
-> **実行優先度**: 💎 **Tier 3 (順位 20/24)** — XS 工数、規約浸透のみ。Tier 1 #1 (`.gitignore` 追加、PR #85 で実装済) の補完。
+> **実行優先度**: 💎 **Tier 3 (順位 22/26)** — XS 工数、規約浸透のみ。Tier 1 #1 (`.gitignore` 追加、PR #85 で実装済) の補完。
#### 設計決定 (案)
@@ -658,7 +658,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/86.md` Tier 1 #1
>
-> **実行優先度**: 🚀 **Tier 1 (順位 4/24)** — XS 工数、daily efficiency への直接効果が極めて大 (1 セッションで rate limit 40% 浪費を防止)。順位 21 (post-pr-monitor polling 禁止 rule) と補完関係 (本タスクは決定論的防止、順位 21 はガイドライン)。
+> **実行優先度**: 🚀 **Tier 1 (順位 4/26)** — XS 工数、daily efficiency への直接効果が極めて大 (1 セッションで rate limit 40% 浪費を防止)。順位 23 (post-pr-monitor polling 禁止 rule) と補完関係 (本タスクは決定論的防止、順位 23 はガイドライン)。
#### 設計決定 (案)
@@ -696,7 +696,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/86.md` Tier 3 #2
>
-> **実行優先度**: 💎 **Tier 3 (順位 21/24)** — XS 工数、ルール明文化のみ。順位 4 (polling anti-pattern 検出) と補完関係 (本ルールはガイドライン、順位 4 は決定論的防止)。
+> **実行優先度**: 💎 **Tier 3 (順位 23/26)** — XS 工数、ルール明文化のみ。順位 4 (polling anti-pattern 検出) と補完関係 (本ルールはガイドライン、順位 4 は決定論的防止)。
#### 設計決定 (案)
@@ -728,7 +728,7 @@ termination 残留の root cause が未調査 (タスク開始時に最初に調
>
> **参照**: `.claude/feedback-reports/86.md` Tier 3 #3
>
-> **実行優先度**: 💎 **Tier 3 (順位 22/24)** — S 工数、構造的負債解消。タスク数 24 に達した現時点でリターン大 (renumber 作業時の Edit 数が桁で減る)。
+> **実行優先度**: 💎 **Tier 3 (順位 24/26)** — S 工数、構造的負債解消。タスク数 26 に達した現時点でリターン大 (renumber 作業時の Edit 数が桁で減る)。
#### 設計決定 (案)
diff --git a/docs/todo3.md b/docs/todo3.md
index c651a956..a60d7b6e 100644
--- a/docs/todo3.md
+++ b/docs/todo3.md
@@ -242,3 +242,94 @@ Hint:
#### 詰まっている箇所
なし (Effort Small、cli-pr-monitor 入口の arg parser 拡張のみ)
+
+---
+
+### Markdown 非 ASCII GFM アンカー検出 lint rule (PR #89 T1-1)
+
+> **動機**: PR #89 で CodeRabbit が docs/todo3.md:7 の `[docs/todo.md](todo.md#推奨実行順序サマリー)` の non-ASCII GFM anchor を Major と判定。同パターンは PR #88 の docs/todo2.md にも存在し、fix ステップの全リポジトリ grep で 3 ファイルにわたる同一パターンが発見された。プロジェクト全体で日本語見出しを多用するため、見出しテキスト変更による silent break のリスクが構造的にある。
+>
+> **本タスクの位置づけ**: ADR-007 の custom_lint_rule (`.claude/custom-lint-rules.toml`) に新規ルール `no-mutable-anchor` を追加。Markdown のリンクで non-ASCII fragment (`#` の後ろが日本語等) を検出 → 警告し、`` 明示アンカーへの誘導を提案する。
+>
+> **参照**: `.claude/feedback-reports/89.md` の Tier 1 #1 finding
+>
+> **実行優先度**: 🚀 **Tier 1** — 工数 S。発生頻度高 (本リポジトリで 3 ファイル以上で確認)、自動検出で確実な再発防止。順位 20 (日付ベース見出しアンカー更新ルールのグローバル明文化、PR #85 T3-1) と補完関係 (本タスクは決定論的防止、順位 20 はガイドライン)。
+
+#### 背景
+
+- 本セッション PR #89 で CodeRabbit が docs/todo3.md:7 の anchor 切れリスクを Major 判定
+- takt fix の family_tag sweep で全リポジトリ grep → 同パターンが docs/todo.md / docs/todo2.md / docs/todo3.md の 3 ファイルに存在することを確認
+- 根本原因: GFM の自動 anchor 生成は heading text のスラッグ化で、日本語含む heading は `#日本語テキスト` 形式の脆弱な ID を生成
+- 既存の custom_lint_rule (ADR-007) には未登録
+
+#### 設計決定 (案)
+
+- ルール名: `no-mutable-anchor`
+- 検出パターン: 正規表現 `\]\([^)#]*#[^\x00-\x7F)]+` (Markdown link の括弧内の `#` 直後に non-ASCII)
+- 警告メッセージ: 「Mutable anchor detected: ``. Use `` for stable cross-reference」
+- 例外: ASCII のみで構成された anchor (`#stable-id`) は許容
+- 適用範囲: `.md` ファイル全般
+
+#### 作業計画
+
+- [ ] `.claude/custom-lint-rules.toml` に新規ルール追加
+- [ ] 既存の non-ASCII anchor がリポジトリ全体で残存していないか確認 (PR #89 で 3 ファイル fix 済だが残存検証)
+- [ ] dogfood: 試しに `[link](#日本語)` を含む `.md` を保存 → 警告が出ることを確認
+- [ ] 本 todo3.md エントリを削除
+
+#### 完了基準
+
+- non-ASCII anchor の Markdown link が pre-push or PostToolUse で検出され警告される
+- リポジトリの全 `.md` ファイルで non-ASCII anchor の reference が 0 件 (clean baseline)
+- CodeRabbit が同種の Major finding を出さなくなる
+
+#### 詰まっている箇所
+
+なし (Effort S、ADR-007 既存基盤の拡張)
+
+---
+
+### post-pr-review に rate-limit 自動検出 + 再トリガーロジック (PR #89 T2-1)
+
+> **動機**: PR #89 作成直後 (13:31Z) に CodeRabbit のレートリミットが発火し、post-pr-review takt workflow が CodeRabbit review を取得できなかった。手動で「rate limit comment の `updated_at` + 残り時間 + 1 分バッファ」を計算し wait → `@coderabbitai review` 投稿で再トリガーする運用で復旧したが、毎回手動判断は冗長。
+>
+> **本タスクの位置づけ**: post-pr-review workflow の analyze ステップに rate-limit 検出 → 自動 wait → 再トリガーを組み込む。本 PR で実証されたタイムスタンプ計算ロジック (`updated_at + remaining_minutes + 60s buffer`) をそのまま自動化する。
+>
+> **参照**: `.claude/feedback-reports/89.md` の Tier 2 #1 finding
+>
+> **実行優先度**: 🔧 **Tier 2** — 工数 Medium。daily efficiency への影響中-大 (rate-limit 発生率 × 手動判断時間)。順位 13 (cli-pr-monitor polling 延長 + 重複起動ロック) と補完関係 (本タスクは review 単位の対応、順位 13 はポーリング頻度全体の削減)。順位 4 (Polling anti-pattern 検出) も類似の rate-limit 削減ライン。
+
+#### 背景
+
+- PR #89 push 直後に CodeRabbit が `Rate limit exceeded` コメント (1 時間内 commit review 数の上限到達) を投稿
+- 手動運用: rate limit comment の `updated_at` 取得 → 残り時間パース → 解除時刻 + 1 分バッファで `gh pr comment --body "@coderabbitai review"` 再トリガー
+- 自動化のメリット: rate-limit 検出から再トリガーまでの待機時間が long-running task で完結 (ユーザー操作不要)
+- 1 分バッファは server 時計差・rate limit カウンタ reset 処理時間を吸収する経験則 (本 PR で 28 秒のシステム遅延を観測しても着地できた実績あり)
+
+#### 設計決定 (案)
+
+- post-pr-review takt workflow の analyze facet で rate-limit 判定を追加
+- 検出条件: CodeRabbit comment body に `Rate limit exceeded` 含む
+- 抽出: `Please wait minutes and seconds` パース → 解除時刻計算
+- 待機機構: takt の sleep ステップ または ScheduleWakeup 同等
+- 再トリガー: 解除 + 1 分後に `gh pr comment --body "@coderabbitai review"` を post
+- 失敗時: rate limit comment が再投稿されたら再検出 → 再 wait
+- 上限: 同 PR で N 回再試行したら abandon (人間判断委ね)
+
+#### 作業計画
+
+- [ ] post-pr-review workflow の analyze facet に rate-limit 検出ロジック追加
+- [ ] `updated_at` + remaining time パース実装
+- [ ] sleep + 再トリガー機構の選定 (takt 内蔵 sleep、ScheduleWakeup、外部 cron 等)
+- [ ] 上限 (N 回再試行) のポリシー決定
+- [ ] dogfood: 意図的に rate-limit を発火させて自動再トリガーが効くことを確認
+- [ ] 本 todo3.md エントリを削除
+
+#### 完了基準
+
+- post-pr-review が CodeRabbit rate-limit を検出した場合、解除時刻 + 1 分バッファで自動再トリガーされる
+- ユーザーは rate-limit 発生を意識せず PR review が最終的に完了する
+
+#### 詰まっている箇所
+
+- 待機機構の選定 (takt 内蔵 vs 外部) は実装着手時に検討