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
1 change: 0 additions & 1 deletion docs/claude-code-web-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
| 順位 | Tier | 内容 | 編集ファイル | 工数 |
|---|---|---|---|---|
| 120 | T3 | `takt-workflow-persona-without-model` rule コメント拡張(field 拡張手順 4-5 行)+ ADR-007 case study 追記(enumeration-based 正規表現層、Rust regex lookahead 非対応の pragmatic 対処)(PR #150 T1-#1、実体 Tier 3) | [.claude/custom-lint-rules.toml](../.claude/custom-lint-rules.toml) ルール⑨ + [docs/adr/adr-007-custom-linter-layer-boundary.md](adr/adr-007-custom-linter-layer-boundary.md) | XS |
| 127 | T3 | extensions 拡張時の test 追加 pattern を Rust ソース内コメントで明文化 (PR #151 T3-#2、順位 124 と同 PR 推奨) | Rust ソース内コメント(test location を正確に参照) | XS |
| 134 | T3 | ADR-035 に docs-only PR 評価の適用外基準リスト追加(mutation / error handling / DRY / YAGNI / function length / test coverage / magic-number 等)(PR #156 T3 #2) | [docs/adr/adr-035-doc-evaluation-policy.md](adr/adr-035-doc-evaluation-policy.md) | S |

### 着手フロー
Expand Down
18 changes: 18 additions & 0 deletions src/hooks-post-tool-linter/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,24 @@ struct CustomRuleExample {
/// 命名規約に依存しない明示的 mapping を採用 (= 案 b、TOML meta field 方式) することで、
/// `ps_empty_catch_*` / `md_mutable_anchor_*` / `no_ephemeral_todo_*` 等の **異なる命名
/// 規約が混在する既存テスト** を rule_id とは独立に対応付けできる。
///
/// ## `extensions` 拡張時の test 追加 pattern (順位 127)
///
/// 既存 rule の `extensions` list に拡張子を追加する際は、`rule_test_coverage_check`
/// (本 file の `#[cfg(test)] mod tests` 内、`tests::rule_test_coverage_check`) が要求する
/// カバレッジ契約を併せて満たすこと。同 test の分類ロジックは `tests::classify_rule_extensions`
/// が `tests::MAIN_EXTENSIONS` (`rs` / `toml` / `yaml` / `yml`) を基準に判定する。
///
/// 1. **追加 ext が主要拡張子の場合** (`rs` / `toml` / `yaml` / `yml`):
/// `[rules.test_coverage.main_ext_tests.<ext>]` に対応 test 関数名を 1 件以上宣言する。
/// 未宣言だと `tests::check_main_ext_coverage` が gap を報告し `rule_test_coverage_check`
/// が fail する。test 関数を `mod tests` に追加し、その名前を TOML に登録する。
/// 2. **追加 ext が非主要拡張子の場合** (`md` / `txt` / `ts` 等):
/// rule が主要拡張子を 1 つも targets しなくなる場合に限り、`other_ext_tests` に
/// 1 件以上の positive test を宣言する (`tests::check_other_ext_coverage` が検証)。
/// 主要拡張子を併せて targets するなら 1 の main_ext_tests 宣言で契約を満たす。
/// 3. TOML に宣言した test 名は `tests::extract_existing_test_fn_names` が `main.rs` を走査して
/// 実在確認するため、typo / 削除した test を宣言に残すと orphan として検出される。
#[derive(Deserialize, Clone, Default, Debug)]
#[allow(dead_code)]
struct CustomRuleTestCoverage {
Expand Down