---
generated_at: 2026-02-19 10:55:00
metrics:
  claims_total: 72
  claims_with_evidence: 72
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：layers-vim.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：72 / 72、根拠なし：0
- 優先レビュー（高）
  1. **UT-VIM-067**：ag/git未インストール環境での動作確認は実機テストが必要
  2. **UT-VIM-071**：遅延ロード機構の動作確認は実行時検証が必要
  3. **UT-VIM-072**：タイマーコールバックエラーハンドリングの検証は実行時テストが必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `layers/+vim/better-motion/config.vim`
- E-02: `layers/+vim/better-motion/packages.vim`
- E-03: `layers/+vim/ctrlp/config.vim`
- E-04: `layers/+vim/ctrlp/packages.vim`
- E-05: `layers/+vim/text-align/config.vim`
- E-06: `layers/+vim/text-align/packages.vim`
- E-07: `layers/+vim/which-key/config.vim`
- E-08: `layers/+vim/which-key/packages.vim`

## 3) Claims と根拠の対応（レビューの主戦場）

### better-motion レイヤー（UT-VIM-001 〜 UT-VIM-015）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | quick-scopeプラグインが登録される | E-02: L1 `MP 'unblevable/quick-scope'` | ○ |
| C-02 | speed_up_via_timer有効時に遅延ロード | E-02: L3-7 `if g:spacevim.speed_up_via_timer ... { 'on': [] }` | ○ |
| C-03 | speed_up_via_timer無効時に即時/オンデマンドロード | E-02: L8-21 `else ... endif` | ○ |
| C-04 | 600msタイマーでspacevim#defer#motion呼出 | E-02: L7 `call timer_start(600, 'spacevim#defer#motion')` | ○ |
| C-05 | Leader+Leaderでeasymotion-prefix | E-01: L10 `map <Leader><Leader> <Plug>(easymotion-prefix)` | ○ |
| C-06 | Leader+jjでeasymotion-bd-f | E-01: L14 `map <Leader>jj <Plug>(easymotion-bd-f)` | ○ |
| C-07 | ノーマルモードでeasymotion-overwin-f | E-01: L15 `nmap <Leader>jj <Plug>(easymotion-overwin-f)` | ○ |
| C-08 | Leader+jJでeasymotion-overwin-f2 | E-01: L18 `nmap <Leader>jJ <Plug>(easymotion-overwin-f2)` | ○ |
| C-09 | Leader+jlでeasymotion-bd-jk | E-01: L21 `map <Leader>jl <Plug>(easymotion-bd-jk)` | ○ |
| C-10 | ノーマルモードでeasymotion-overwin-line | E-01: L22 `nmap <Leader>jl <Plug>(easymotion-overwin-line)` | ○ |
| C-11 | Leader+jwでeasymotion-bd-w | E-01: L25 `map <Leader>jw <Plug>(easymotion-bd-w)` | ○ |
| C-12 | ノーマルモードでeasymotion-overwin-w | E-01: L26 `nmap <Leader>jw <Plug>(easymotion-overwin-w)` | ○ |
| C-13 | Leader+jfで前方ジャンプ | E-01: L28 `map <Leader>jf <Plug>(easymotion-prefix)w` | ○ |
| C-14 | Leader+jbで後方ジャンプ | E-01: L29 `map <Leader>jb <Plug>(easymotion-prefix)F` | ○ |
| C-15 | f/F/t/Tでquick-scopeハイライト | E-01: L32 `let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']` | ○ |

### ctrlp レイヤー（UT-VIM-016 〜 UT-VIM-039）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | tmuxロード時にctrlp即時ロード | E-04: L1-3 `if spacevim#load('tmux') ... MP 'ctrlpvim/ctrlp.vim'` | ○ |
| C-17 | tmux非ロード時にctrlp遅延ロード | E-04: L4-7 `else ... { 'on': ['CtrlP', 'CtrlPMRU'] }` | ○ |
| C-18 | ctrlp_working_path_mode='ra' | E-03: L2 `let g:ctrlp_working_path_mode = 'ra'` | ○ |
| C-19 | ctrlp_match_window_bottom=0 | E-03: L3 `let g:ctrlp_match_window_bottom = 0` | ○ |
| C-20 | ctrlp_by_filename=1 | E-03: L4 `let g:ctrlp_by_filename = 1` | ○ |
| C-21 | ctrlp_max_height=10 | E-03: L5 `let g:ctrlp_max_height = 10` | ○ |
| C-22 | ctrlp_switch_buffer='et' | E-03: L6 `let g:ctrlp_switch_buffer = 'et'` | ○ |
| C-23 | ctrlp_regexp=1 | E-03: L7 `let g:ctrlp_regexp = 1` | ○ |
| C-24 | ctrlp_use_caching=1 | E-03: L8 `let g:ctrlp_use_caching = 1` | ○ |
| C-25 | ctrlp_clear_cache_on_exit=0 | E-03: L9 `let g:ctrlp_clear_cache_on_exit=0` | ○ |
| C-26 | ctrlp_mruf_max=250 | E-03: L10 `let g:ctrlp_mruf_max = 250` | ○ |
| C-27 | ctrlp_map='<c-p>' | E-03: L11 `let g:ctrlp_map = '<c-p>'` | ○ |
| C-28 | ctrlp_cmd='CtrlP' | E-03: L12 `let g:ctrlp_cmd = 'CtrlP'` | ○ |
| C-29 | ctrlp_follow_symlinks=1 | E-03: L13 `let g:ctrlp_follow_symlinks=1` | ○ |
| C-30 | ctrlp_mruf_relative=1 | E-03: L14 `let g:ctrlp_mruf_relative = 1` | ○ |
| C-31 | ctrlp_mruf_exclude設定 | E-03: L15 `let g:ctrlp_mruf_exclude = '/tmp/.*\|/temp/.*'` | ○ |
| C-32 | ctrlp_custom_ignore設定 | E-03: L16-20 `let g:ctrlp_custom_ignore = {...}` | ○ |
| C-33 | ag検出時grepprg設定 | E-03: L25 `set grepprg=ag\ --nogroup\ --nocolor` | ○ |
| C-34 | ag検出時ctrlp_user_command設定 | E-03: L27 `let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'` | ○ |
| C-35 | ag検出時キャッシュ無効化 | E-03: L29 `let g:ctrlp_use_caching = 0` | ○ |
| C-36 | ag未検出時git使用 | E-03: L31 `let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']` | ○ |
| C-37 | pymatcher#PyMatch設定 | E-03: L34 `let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' }` | ○ |
| C-38 | Leader+frでCtrlPMRU | E-03: L35 `nnoremap <Leader>fr :CtrlPMRU<CR>` | ○ |
| C-39 | Ctrl+pでCtrlP | E-03: L36 `nnoremap <C-p> :CtrlP<CR>` | ○ |

### text-align レイヤー（UT-VIM-040 〜 UT-VIM-059）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-40 | tabularプラグイン登録 | E-06: L1 `MP 'godlygeek/tabular', { 'on': 'Tabularize' }` | ○ |
| C-41 | vim-easy-alignプラグイン登録 | E-06: L2 `MP 'junegunn/vim-easy-align', { 'on': [ '<Plug>(EasyAlign)', 'EasyAlign' ] }` | ○ |
| C-42 | Leader+a&でTabularize /& | E-05: L2 `nmap <Leader>a& :Tabularize /&<CR>` | ○ |
| C-43 | ビジュアルLeader+a&でTabularize /& | E-05: L3 `vmap <Leader>a& :Tabularize /&<CR>` | ○ |
| C-44 | Leader+a=でTabularize /= | E-05: L4 `nmap <Leader>a= :Tabularize /^[^=]*\zs=<CR>` | ○ |
| C-45 | ビジュアルLeader+a=でTabularize /= | E-05: L5 `vmap <Leader>a= :Tabularize /^[^=]*\zs=<CR>` | ○ |
| C-46 | Leader+a=>でTabularize /=> | E-05: L6 `nmap <Leader>a=> :Tabularize /=><CR>` | ○ |
| C-47 | ビジュアルLeader+a=>でTabularize /=> | E-05: L7 `vmap <Leader>a=> :Tabularize /=><CR>` | ○ |
| C-48 | Leader+a:でTabularize /: | E-05: L8 `nmap <Leader>a: :Tabularize /:<CR>` | ○ |
| C-49 | ビジュアルLeader+a:でTabularize /: | E-05: L9 `vmap <Leader>a: :Tabularize /:<CR>` | ○ |
| C-50 | Leader+a::でTabularize /:\zs | E-05: L10 `nmap <Leader>a:: :Tabularize /:\zs<CR>` | ○ |
| C-51 | ビジュアルLeader+a::でTabularize /:\zs | E-05: L11 `vmap <Leader>a:: :Tabularize /:\zs<CR>` | ○ |
| C-52 | Leader+a,でTabularize /, | E-05: L12 `nmap <Leader>a, :Tabularize /,<CR>` | ○ |
| C-53 | ビジュアルLeader+a,でTabularize /, | E-05: L13 `vmap <Leader>a, :Tabularize /,<CR>` | ○ |
| C-54 | Leader+a,,でTabularize /,\zs | E-05: L14 `nmap <Leader>a,, :Tabularize /,\zs<CR>` | ○ |
| C-55 | ビジュアルLeader+a,,でTabularize /,\zs | E-05: L15 `vmap <Leader>a,, :Tabularize /,\zs<CR>` | ○ |
| C-56 | Leader+a|でTabularize /<Bar> | E-05: L16 `nmap <Leader>a<Bar> :Tabularize /<Bar><CR>` | ○ |
| C-57 | ビジュアルLeader+a|でTabularize /<Bar> | E-05: L17 `vmap <Leader>a<Bar> :Tabularize /<Bar><CR>` | ○ |
| C-58 | ビジュアルLeader+xaでEasyAlign | E-05: L22 `xmap <Leader>xa <Plug>(EasyAlign)` | ○ |
| C-59 | ノーマルLeader+xaでEasyAlign | E-05: L25 `nmap <Leader>xa <Plug>(EasyAlign)` | ○ |

### which-key レイヤー（UT-VIM-060 〜 UT-VIM-065）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-60 | vim-which-keyプラグイン登録 | E-08: L1 `MP 'liuchengxu/vim-which-key', { 'on': ['WhichKey', 'WhichKey!', 'WhichKeyVisual', 'WhichKeyVisual!'] }` | ○ |
| C-61 | User vim-which-keyでInit呼出 | E-08: L2 `autocmd! User vim-which-key call spacevim#autocmd#which_key#Init()` | ○ |
| C-62 | ノーマルleaderでWhichKey '<Space>' | E-07: L1 `nnoremap <silent> <leader> :<c-u>WhichKey '<Space>'<CR>` | ○ |
| C-63 | ビジュアルleaderでWhichKeyVisual '<Space>' | E-07: L2 `vnoremap <silent> <leader> :<c-u>WhichKeyVisual '<Space>'<CR>` | ○ |
| C-64 | ノーマルlocalleaderでWhichKey ',' | E-07: L4 `nnoremap <silent> <localleader> :<c-u>WhichKey ','<CR>` | ○ |
| C-65 | ビジュアルlocalleaderでWhichKeyVisual ',' | E-07: L5 `vnoremap <silent> <localleader> :<c-u>WhichKeyVisual ','<CR>` | ○ |

### 異常系・境界値テストケース（UT-VIM-066 〜 UT-VIM-072）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | キーマッピング競合時の挙動 | E-01: マッピング定義から推測 | ○ |
| C-67 | ag/git未インストール環境での挙動 | E-03: L23-32 条件分岐から推測 | ○ |
| C-68 | 空ディレクトリでのCtrlP動作 | E-03: CtrlP設定から推測 | ○ |
| C-69 | 整列対象なしの挙動 | E-05: Tabularizeコマンドから推測 | ○ |
| C-70 | 空の選択範囲での挙動 | E-05: vmapコマンドから推測 | ○ |
| C-71 | WhichKey未ロード時の挙動 | E-08: 遅延ロード設定から推測 | ○ |
| C-72 | タイマーコールバック失敗時の挙動 | E-02: timer_start呼出から推測 | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - 全てのテストケースはソースコード（layers/+vim配下の8ファイル）から直接抽出
  - 異常系・境界値テストケースは既存コードの条件分岐・設定値から論理的に導出

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースがソースコードに基づいており、根拠が明確
- 注意点:
  - 異常系テストケース（C-66〜C-72）は実行時検証が必要
  - Vim Scriptの単体テストは通常のテストフレームワークでは実行困難であり、手動テストまたはVim専用テストツール（vader.vim、themis.vim等）の使用を推奨

## 6) レビュアーチェックリスト（最小）
- [ ] 各レイヤーの主要機能（キーバインド、プラグイン登録）がテストケースでカバーされているか
- [ ] ag/git検出ロジックの条件分岐が適切にテストされているか
- [ ] 遅延ロード（speed_up_via_timer、on-demand loading）のテストケースが十分か
- [ ] 異常系・境界値テストケースの実行可能性を検討したか
- [ ] Vim Scriptテストフレームワークの選定が必要か
