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
5 changes: 5 additions & 0 deletions .claude/hooks-config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ failed_marker_check_enabled = true # 前回失敗 marker 検出 → resume promo
# "jj-message-required" — jj new / jj split を -m / --message なしでブロック
# (混合 commit 事故 + jj split editor hang を構造的に防止、
# 順位 144 / PR #171 T3-#8 採用)
# "secret-detection" — AWS / OpenAI / GitHub / Anthropic 等の hardcoded secret を
# Bash command + Edit/Write content 双方で検出してブロック
# (~/.claude/rules/common/security.md § Secret Management 移管、
# 順位 146 / PR #200 follow-up 採用、Tier 1 default-on)
# プリセット名以外の文字列は正規表現としてカスタムパターン扱い
blocked_patterns = [
"default",
Expand All @@ -69,6 +73,7 @@ blocked_patterns = [
"exe-help-block",
"electron",
"jj-message-required",
"secret-detection",
]

# 追加の保護ファイル (デフォルトリストに追加)
Expand Down
5 changes: 4 additions & 1 deletion docs/todo-summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
| 140 | 💎 Tier 3 | **順位 135「codified placeholder policy」を正式 ADR に昇格 (PR #169 T3-#2 採用)** | todo8.md | S | なし (順位 135 entry を retire し、ADR-NNN (採番未確定、land 時に確定): ADR Numbering Strategy として永続化。PR #111/#132/#169 の 3+ PR で適用実証済 — PR #169 で「ADR-038 → 041 → NNN」3 段振り直し dogfood が land、ephemeral todo entry 限りでは派生プロジェクトへの transferability 不足、`feedback_no_unenforced_rules.md` 例外 = 既存実践 (3 PR で実証) の明文化 + 後続 entry が同 policy を参照する際の永続 reference 確保) |
| 143 | 🔧 Tier 2 | **複言語 fixture helper 標準化 (hooks-post-tool-linter-tests) (PR #171 T2-#4 採用) ★ Bundle 171** | todo8.md | S | なし (PR #151/#171 の 2 PR 横断で multi-byte fixture 手動組み立てコストが Frequency Medium で観測、Japanese / emoji / combining chars helper 3 関数を標準化して新規 string-processing 関数追加時の boundary test コスト削減 + silent regression early detection、順位 142 + 144 と同 PR で land 推奨) |
| 145 | 🔧 Tier 2 | **preset matrix test 追加 — default fallback vs config-selectable の 2 軸 classification 検証 (PR #172 T2-#1 採用)** | todo8.md | M | なし (PR #172 Phase 3 で `jj-message-required` が opt-in preset であることを前提とせず test を書き rewrite が必要になった経緯、preset architecture の implicit assumption (always-enabled vs config-selectable) を classification 表として test レベルで codify、新 preset 追加時に matrix 更新を強制する mechanical enforcement で design misalignment を構造的検出、target は main.rs (feedback report の lib.rs 記載は誤り)) |
| 146 | 🚀 Tier 1 | **Secret detection PreToolUse hook 追加 — AWS/OpenAI/GitHub token 等の hardcoded secret 検出 (PR #172 仕組み化方針切替由来、`security.md` § Secret Management 移管) ★ Bundle 既存ルール仕組み化** | todo9.md | M | なし (`~/.claude/rules/common/security.md` § Secret Management 記述のみで機械強制なし、AWS Access Key / OpenAI sk- / GitHub ghp_/gho_/ghs_ / Anthropic sk-ant- 等 6+ 種 pattern を `preset_secret_detection` で regex 検出 + 即 block、順位 144 hook 化 template 踏襲、security-critical かつ漏洩観測前の preventive 層として Tier 1、rule docs § Secret Management を hook block message に集約で縮小) |
| 147 | 🔧 Tier 2 | **File length lint (800 行 max) 追加 — `coding-style.md` § File Organization 移管 (PR #172 仕組み化方針切替由来) ★ Bundle 既存ルール仕組み化** | todo9.md | S | なし (`~/.claude/rules/common/coding-style.md` § File Organization の 800 行 max を `hooks-post-tool-comment-lint-rust` に追加、順位 48 関数長と同 touch-trigger ratchet pattern で grandfather 適用、Rust 限定 MVP、順位 57 truncate contract 整合、rule docs から具体閾値削除で縮小) |
| 148 | 🔧 Tier 2 | **Test coverage 80% CI gate 追加 — `testing.md` § Minimum Test Coverage 80% 移管 (PR #172 仕組み化方針切替由来) ★ Bundle 既存ルール仕組み化** | todo9.md | S-M | なし (`~/.claude/rules/common/testing.md` § 80% coverage ガイドラインを実行時 gate に変換、`cargo llvm-cov --fail-under-lines 80` を push-runner-config.toml [quality_gate] に integration 推奨、現状未測定のため段階導入計画必要、rule docs § 80% coverage を実行時 gate 参照に縮小) |
| 149 | 🔧 Tier 2 | **Long-running subprocess pipe truncate hook 拡張 — `development-workflow.md` § subprocess pipe truncate 禁止 移管 (PR #172 仕組み化方針切替由来) ★ Bundle 既存ルール仕組み化** | todo9.md | S | なし (既存 `exe-help-block` preset を `cli-*.exe ... \| (head\|tail\|awk)` 等の副作用ある subprocess 出力 truncate にも拡張 or 新 `subprocess-pipe-truncate-block` preset 追加、PR #109 SIGPIPE 事故 root cause の構造化、順位 44 (gh-token-efficiency) との scope 境界整理必要、development-workflow.md § 該当 section 縮小) |
Expand Down Expand Up @@ -80,6 +79,10 @@
| 194 | 💎 Tier 3 | **`development-workflow.md` 「1. Plan First」に「task 着手前に grep で既存 section 確認」step 追記 (PR #196 T3-5 採用)** | todo10.md | XS | なし (PR #123 + #196 で「既実装 section の重複計画」事象を Frequency Medium で観測、`~/.claude/rules/common/development-workflow.md` "1. Plan First" に Codification 重複確認 step を 1-2 行追記、`grep -rn` 手順 + 由来 cite (PR #123, #196)、派生プロジェクト (techbook-ledger / auto-review-fix-vc) に global rule として自動波及、`feedback_global_config_backup` 適用必須) |
| 197 | 🔧 Tier 2 | **`hooks-session-start` orphan age 計算に proptest 追加 (PR #199 post-merge-feedback T2-1 採用)** | todo10.md | M | なし (Bundle W の PastTime newtype + proptest pattern を `src/hooks-session-start/src/main.rs:236` の `saturating_sub` orphan age 計算に展開、clock rewind で age=0 → orphan reaper sleep → ADR-030 L2 recovery 沈黙の failure chain を構造的に防ぐ、Severity High + Frequency Medium、proptest 依存追加のみ) |
| 198 | 💎 Tier 3 | **ADR-NNN (採番未確定、land 時に確定): Timestamp invariant safety — 時刻計算 silent failure class の codify (PR #199 post-merge-feedback T3-2 採用)** | todo10.md | M | なし (PR #96 Finding D + PR #199 Bundle W で同型 bug class 2 件観測 = Frequency Medium、PastTime newtype + proptest が実証した型層防御原則を ADR で永続化、派生プロジェクト (techbook-ledger / auto-review-fix-vc) への transferability 確保、順位 135 placeholder policy 適用、CLAUDE.md ADR list 追記) |
| 199 | 🔧 Tier 2 | **multi-byte 文字を含む string window test の標準 coverage requirement 化 (PR #200 post-merge-feedback T2-1 採用)** | todo10.md | S | なし (PR #199 byte 計算混乱 + PR #200 priority_inversion char window bug の 2 観測 = Frequency Medium、`is_resolved_detects_marker_across_multibyte_gap` style を testing.md に標準化、新 validator 追加時に CJK 40 文字 (= 120 bytes) gap 含む multi-byte test を必須化、MVP は docs/checklist、3-5 validator land 後に lint rule 化を再評価) |
| 200 | 💎 Tier 3 | **`~/.claude/rules/rust/patterns.md` に「String Indexing with Multi-byte Characters」section 追加 (PR #200 post-merge-feedback T3-1 採用)** | todo10.md | XS | なし (PR #199 parse_age_secs + PR #200 priority_inversion の 2 観測 = Frequency Medium、`char_indices().nth(N)` canonical reference を global rules に追加して将来の lint rule 著者が同型 byte/char 混同 bug を再生産しないよう構造的予防、派生プロジェクト (techbook-ledger / auto-review-fix-vc) へも自動波及、`feedback_global_config_backup` 適用必須) |
| 201 | 💎 Tier 3 | **ADR-007 に「Regex は loop / repeated call 内で `LazyLock<Regex>` 必須」guideline 追記 (PR #200 post-merge-feedback T3-2 採用)** | todo10.md | XS | なし (PR #200 priority_inversion で per-row `Regex::new()` 再 compile を `LazyLock<Regex>` 化した F-2 fix を ADR-007 § 正規表現層 に guideline として追記、`TIER_REGEX` / `RANK_REGEX` を参照実装として cite、1000+ 行 table での累積コスト顕在化を予防) |
| 202 | 💎 Tier 3 | **`~/.claude/rules/common/testing.md` に「multi-path test fixture isolation」section 追記 (PR #200 post-merge-feedback T3-3 採用)** | todo10.md | XS | なし (PR #200 F-3 fix で実証した「Path A を exercise する fixture には Path B トリガー条件を明示除外」 pattern を sentinel section 直下に追加、silent path-shift fragility を構造的に防ぐ、sentinel pattern (mutation 不在 assert) と相補的な test robustness 手法、派生プロジェクトへ global rules 経由で自動波及、`feedback_global_config_backup` 適用必須) |

**戦略**: Tier 1 を 2〜3 セッションで片付け → Tier 2 で ADR-032 の前提 + rate-limit + convergence cost 削減を進める → Tier 3 で ADR-032 を land + ドキュメント整備。Tier 4-5 は cleanup / 外部展開で daily efficiency への直接効果は小さい。

Expand Down
Loading