---
generated_at: 2026-02-18 16:30:00
metrics:
  claims_total: 35
  claims_with_evidence: 35
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：plugins-0-9 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：35 / 35、根拠なし：0
- 優先レビュー（高）
  1. **なし**：すべてのテストケースにソースコードの根拠あり

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

- E-01: `plugins/1password/1password.plugin.zsh` - プラグインのメインファイル（16行）
- E-02: `plugins/1password/opswd` - opswd関数の実装（50行）
- E-03: `plugins/1password/_opswd` - 補完関数の実装（10行）
- E-04: `plugins/1password/README.md` - プラグインの使用方法とドキュメント（41行）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | opコマンドが存在する場合にプラグインが読み込まれること | E-01 (行2: `(( ${+commands[op]} )) \|\| return`) | ○ |
| C-02 | opコマンドが存在しない場合にプラグインが読み込まれないこと | E-01 (行2: `return`による早期終了) | ○ |
| C-03 | 補完キャッシュファイルが存在しない場合に新規作成されること | E-01 (行6-10: `if [[ ! -f "$ZSH_CACHE_DIR/completions/_op" ]]`) | ○ |
| C-04 | 補完キャッシュファイルが既に存在する場合に上書きされること | E-01 (行12: `>\|` 演算子で強制上書き) | ○ |
| C-05 | opswd関数がautoloadされること | E-01 (行15: `autoload -Uz opswd`) | ○ |
| C-06 | 引数なしで実行した場合にUsageが表示されること | E-02 (行7-9: `if [[ $# -lt 1 ]]; then echo "Usage..."`) | ○ |
| C-07 | サービス名引数が正しく渡されること | E-02 (行12: `local service=$1`) | ○ |
| C-08 | 1Passwordにログインしていない場合にエラーとなること | E-02 (行15: `op user list > /dev/null \|\| return`) | ○ |
| C-09 | 1Passwordにログイン済みの場合に処理が継続すること | E-02 (行15: `op user list`成功で続行) | ○ |
| C-10 | 指定サービスのユーザー名が取得できること | E-02 (行19: `username=$(op item get "$service" --fields username`) | ○ |
| C-11 | 存在しないサービスを指定した場合にエラーとなること | E-02 (行19-22: `if ! username=$(...)` の失敗分岐) | ○ |
| C-12 | ユーザー名がクリップボードにコピーされること | E-02 (行24: `echo -n "$username" \| clipcopy`) | ○ |
| C-13 | ユーザー名コピー後に確認メッセージが表示されること | E-02 (行25: echoによるメッセージ出力) | ○ |
| C-14 | 指定サービスのパスワードが取得できること | E-02 (行30: `password=$(op item get "$service" --reveal --fields password`) | ○ |
| C-15 | パスワード取得に失敗した場合にエラーとなること | E-02 (行30-33: `if ! password=$(...)` の失敗分岐) | ○ |
| C-16 | パスワードがクリップボードにコピーされること | E-02 (行35: `echo -n "$password" \| clipcopy`) | ○ |
| C-17 | パスワードコピー後に確認メッセージが表示されること | E-02 (行36: echoによるメッセージ出力) | ○ |
| C-18 | TOTPが存在する場合にTOTPが取得されること | E-02 (行41: `totp=$(op item get --otp "$service"`) | ○ |
| C-19 | TOTPが存在しない場合はスキップされること | E-02 (行41: `[[ -n "$totp" ]]` の条件分岐) | ○ |
| C-20 | TOTPがクリップボードにコピーされること | E-02 (行42: `echo -n "$totp" \| clipcopy`) | ○ |
| C-21 | TOTPコピー後に確認メッセージが表示されること | E-02 (行43: echoによるメッセージ出力) | ○ |
| C-22 | 20秒後にクリップボードがクリアされること | E-02 (行46: `sleep 20 && clipcopy </dev/null`) | ○ |
| C-23 | クリップボードクリア処理がバックグラウンドで実行されること | E-02 (行46: `&!` 演算子) | ○ |
| C-24 | 1Passwordのログインアイテム一覧が補完候補として取得されること | E-03 (行5: `op item list --categories Login`) | ○ |
| C-25 | 1Passwordにログインしていない場合に補完候補が空となること | E-03 (行6: `[[ -z "$services" ]] \|\| compadd`) | ○ |
| C-26 | ログインアイテムが0件の場合に補完候補が空となること | E-03 (行6: 空チェックによる条件分岐) | ○ |
| C-27 | ログインアイテムが1件の場合に正しく補完候補が生成されること | E-03 (行5-6: 配列生成ロジック) | ○ |
| C-28 | --cacheオプションによりキャッシュが利用されること | E-03 (行5: `--cache` オプション) | ○ |
| C-29 | サービス名が空文字の場合の挙動 | E-02 (行7: `$# -lt 1` は空文字も1引数としてカウント) | ○ |
| C-30 | サービス名に特殊文字が含まれる場合の挙動 | E-02 (行12, 19, 30: `"$service"` でクォート) | ○ |
| C-31 | サービス名にシングルクォートが含まれる場合の挙動 | E-02 (行12, 19, 30: ダブルクォートで囲まれている) | ○ |
| C-32 | ユーザー名コピー後にEnterキー入力を待つこと | E-02 (行26: `read`) | ○ |
| C-33 | パスワードコピー後にEnterキー入力を待つこと | E-02 (行37: `read`) | ○ |
| C-34 | 補完生成がバックグラウンドで実行されること | E-01 (行12: `&\|` 演算子) | ○ |
| C-35 | op item get実行時にstderrが抑制されること | E-02 (行19, 30, 41: `2>/dev/null`) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし
  - すべてのテストケースはソースコードから直接根拠を抽出

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースがソースコードに基づいており、推測や仮定は含まれていない
- 注意点:
  - Zshスクリプトの単体テストは実行環境（Zshバージョン、oh-my-zshの設定）に依存する可能性がある
  - 1Password CLI (op) の動作はモック化が必要
  - clipcopyコマンドはoh-my-zshが提供する関数であり、環境によって動作が異なる可能性がある

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要なロジックをカバーしているか確認
- [ ] 正常系・異常系・境界値のバランスが適切か確認
- [ ] セキュリティ関連のテストケース（クリップボードクリア、パスワード取扱い）が十分か確認
- [ ] 1Password CLI (op) のモック戦略を検討
- [ ] インタラクティブな入力（read）のテスト方法を検討
- [ ] バックグラウンドプロセス（&!, &|）のテスト方法を検討
