---
generated_at: 2026-03-01 17:55:00
metrics:
  claims_total: 55
  claims_with_evidence: 55
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：nu_plugin_gstat 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：55 / 55、根拠なし：0
- 優先レビュー（高）
  1. なし（全て根拠あり）

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

- E-01: `crates/nu_plugin_gstat/src/lib.rs` - モジュールのエントリポイント、pub use宣言
- E-02: `crates/nu_plugin_gstat/src/gstat.rs` - GStat構造体、Stats構造体、check関数の実装
- E-03: `crates/nu_plugin_gstat/src/nu/mod.rs` - GStatPlugin実装、SimplePluginCommand実装
- E-04: `crates/nu_plugin_gstat/src/main.rs` - プラグインのエントリポイント
- E-05: git2クレートのドキュメント（https://docs.rs/git2/）- Repository、Status、RepositoryState等のAPI

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | GStat::new()がDefault::default()を使用してインスタンス生成 | E-02 (L14-17) | ○ |
| C-02 | GStat::gstat()が有効なGitリポジトリからステータスを取得 | E-02 (L19-139) | ○ |
| C-03 | pathがNoneの場合にvalue.is_nothing()をチェック | E-02 (L32-41) | ○ |
| C-04 | valueが文字列の場合にcoerce_string()でパス取得 | E-02 (L36) | ○ |
| C-05 | calculate_tagがtrueの場合にDescribeOptionsを使用 | E-02 (L96-103) | ○ |
| C-06 | calculate_tagがfalseの場合に"no_tag"を返却 | E-02 (L96-103) | ○ |
| C-07 | パスが存在しない場合にLabeledError返却 | E-02 (L47-52) | ○ |
| C-08 | パスがディレクトリでない場合にLabeledError返却 | E-02 (L65-70) | ○ |
| C-09 | Repository::discoverが失敗時にcreate_empty_git_status呼び出し | E-02 (L83-87) | ○ |
| C-10 | 返却レコードに20個のフィールドが含まれる | E-02 (L115-138) | ○ |
| C-11 | create_empty_git_statusが全フィールドに-1またはno_*を設定 | E-02 (L142-168) | ○ |
| C-12 | 空ステータスのrepo_nameが"no_repository" | E-02 (L160) | ○ |
| C-13 | Stats::new()がリポジトリからStats構造体を生成 | E-02 (L219-282) | ○ |
| C-14 | INDEX_NEWフラグでidx_added_stagedをインクリメント | E-02 (L235-237) | ○ |
| C-15 | INDEX_MODIFIEDフラグでidx_modified_stagedをインクリメント | E-02 (L238-240) | ○ |
| C-16 | INDEX_DELETEDフラグでidx_deleted_stagedをインクリメント | E-02 (L241-243) | ○ |
| C-17 | INDEX_RENAMEDフラグでidx_renamedをインクリメント | E-02 (L244-246) | ○ |
| C-18 | INDEX_TYPECHANGEフラグでidx_type_changedをインクリメント | E-02 (L247-249) | ○ |
| C-19 | WT_NEWフラグでwt_untrackedをインクリメント | E-02 (L251-253) | ○ |
| C-20 | WT_MODIFIEDフラグでwt_modifiedをインクリメント | E-02 (L254-256) | ○ |
| C-21 | WT_DELETEDフラグでwt_deletedをインクリメント | E-02 (L257-259) | ○ |
| C-22 | WT_TYPECHANGEフラグでwt_type_changedをインクリメント | E-02 (L260-262) | ○ |
| C-23 | WT_RENAMEDフラグでwt_renamedをインクリメント | E-02 (L263-265) | ○ |
| C-24 | IGNOREDフラグでignoredをインクリメント | E-02 (L267-269) | ○ |
| C-25 | CONFLICTEDフラグでconflictsをインクリメント | E-02 (L270-272) | ○ |
| C-26 | stash_foreachでstashesをカウント | E-02 (L276-279) | ○ |
| C-27 | repo.state()でリポジトリ状態を取得 | E-02 (L223) | ○ |
| C-28 | 空リポジトリで全カウントが0（Default trait） | E-02 (L172, L220) | ○ |
| C-29 | read_branch()でhead().shorthand()からブランチ名取得 | E-02 (L288-318) | ○ |
| C-30 | デタッチドHEADでコミットIDの先頭8文字を使用 | E-02 (L293-299) | ○ |
| C-31 | shorthandがNoneの場合に"HEAD"を返却 | E-02 (L310-311) | ○ |
| C-32 | BareRepoエラーで"master"を返却 | E-02 (L314) | ○ |
| C-33 | 空リポジトリで"master"を返却 | E-02 (L315) | ○ |
| C-34 | read_upstream_name()でupstream().name()から上流名取得 | E-02 (L321-341) | ○ |
| C-35 | upstreamが存在しない場合に空文字列を返却 | E-02 (L335-337) | ○ |
| C-36 | find_branchが失敗した場合に空文字列を返却 | E-02 (L338-340) | ○ |
| C-37 | read_ahead_behind()でgraph_ahead_behindを呼び出し | E-02 (L344-351) | ○ |
| C-38 | 同期済みの場合にahead=0, behind=0 | E-02 (L344-351) | ○ |
| C-39 | targetがNoneの場合に値が更新されない | E-02 (L345-350) | ○ |
| C-40 | check()関数でビットANDの結果がフラグと等しいか判定 | E-02 (L372-377) | ○ |
| C-41 | 部分一致の場合にfalseを返却 | E-02 (L376) | ○ |
| C-42 | フラグなしの場合にfalseを返却 | E-02 (L376) | ○ |
| C-43 | 値が0でフラグが非0の場合にfalse | E-02 (L376) | ○ |
| C-44 | フラグが0の場合に任意の値でtrue | E-02 (L376) | ○ |
| C-45 | GStatPlugin::version()がCARGO_PKG_VERSIONを返却 | E-03 (L8-10) | ○ |
| C-46 | GStatPlugin::commands()がGStatを含むVecを返却 | E-03 (L12-14) | ○ |
| C-47 | GStat::name()が"gstat"を返却 | E-03 (L20-22) | ○ |
| C-48 | GStat::description()が説明文を返却 | E-03 (L24-26) | ○ |
| C-49 | GStat::signature()が--no-tagスイッチとpathオプションを含む | E-03 (L28-33) | ○ |
| C-50 | カテゴリがCategory::Custom("prompt")に設定 | E-03 (L32) | ○ |
| C-51 | GStat::run()がgstat()を呼び出してステータス取得 | E-03 (L35-48) | ○ |
| C-52 | --no-tagフラグでdisable_tagがtrueになり!disable_tagがfalse | E-03 (L45, L47) | ○ |
| C-53 | パス引数なしでengine.get_current_dir()を使用 | E-03 (L44, L47) | ○ |
| C-54 | gstat()がエラーを返却した場合にLabeledErrorが伝播 | E-03 (L47), E-02 (L48-51, L66-69) | ○ |
| C-55 | main()がserve_plugin()でプラグインを起動 | E-04 (L4-6) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全てのテストケースに対応するソースコード根拠が存在）

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコードから直接導出されており、推測に基づく項目はない

## 6) レビュアーチェックリスト（最小）
- [ ] GStat::gstat()の全分岐パスがテストケースでカバーされているか確認
- [ ] Stats構造体の全フィールドに対するテストが存在するか確認
- [ ] 外部依存（git2クレート）のモック方法を検討
- [ ] エラーケース（LabeledError）のメッセージ内容が適切か確認
- [ ] 境界値テスト（u16の最大値等）の必要性を検討
