---
generated_at: 2026-02-18 10:30:00
metrics:
  claims_total: 52
  claims_with_evidence: 52
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：public-Pbm.csv

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `public/Get-DbaPbmStore.ps1` - PBM Store取得関数（67-100行）
- E-02: `public/Get-DbaPbmPolicy.ps1` - PBMポリシー取得関数（111-155行）
- E-03: `public/Get-DbaPbmCondition.ps1` - PBMコンディション取得関数（89-131行）
- E-04: `public/Get-DbaPbmCategory.ps1` - PBMカテゴリ取得関数（71-109行）
- E-05: `public/Get-DbaPbmObjectSet.ps1` - PBMオブジェクトセット取得関数（82-120行）
- E-06: `public/Get-DbaPbmCategorySubscription.ps1` - PBMカテゴリサブスクリプション取得関数（73-101行）

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

### Get-DbaPbmStore関連（UT-PBM-001〜010）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | 有効なSqlInstanceでPolicyStoreオブジェクトが取得できること | E-01: L83-98 foreach ($instance in $SqlInstance) でPolicyStore生成 | ○ |
| C-02 | 複数のSqlInstanceをパイプラインで渡した場合に全インスタンスのStoreが取得できること | E-01: L69 [DbaInstanceParameter[]]$SqlInstance（配列対応） | ○ |
| C-03 | SqlCredentialを使用して認証できること | E-01: L70-71 SqlCredential パラメータ定義 | ○ |
| C-04 | ComputerName, InstanceName, SqlInstanceプロパティが追加されること | E-01: L93-95 Add-Member でプロパティ追加 | ○ |
| C-05 | 存在しないインスタンスを指定した場合に適切なエラーが返ること | E-01: L89-90 Stop-Function -Message "Failure" | ○ |
| C-06 | PowerShell Coreで実行した場合にサポート外メッセージが表示されること | E-01: L79-81 PSVersionTable.PSEdition チェック | ○ |
| C-07 | SQL Server 2008未満のバージョンで接続した場合にエラーが返ること | E-01: L85 Connect-DbaInstance -MinimumVersion 10 | ○ |
| C-08 | EnableException指定時に例外がスローされること | E-01: L72 [switch]$EnableException パラメータ | ○ |
| C-09 | SqlInstanceにnullを渡した場合の挙動 | E-01: L69 [parameter(Mandatory)] 必須パラメータ | ○ |
| C-10 | SqlInstanceに空配列を渡した場合の挙動 | E-01: L83 foreach ループが空配列を処理 | ○ |

### Get-DbaPbmPolicy関連（UT-PBM-011〜021）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | 全ポリシーが取得できること | E-02: L131 $allpolicies = $store.Policies | ○ |
| C-12 | Policyパラメータで特定ポリシーをフィルタできること | E-02: L141-143 Where-Object Name -in $Policy | ○ |
| C-13 | Categoryパラメータでカテゴリフィルタができること | E-02: L137-139 Where-Object PolicyCategory -in $Category | ○ |
| C-14 | IncludeSystemObjectでシステムポリシーが含まれること | E-02: L119 [switch]$IncludeSystemObject | ○ |
| C-15 | デフォルトでシステムポリシーが除外されること | E-02: L133-135 if (-not $IncludeSystemObject) フィルタ | ○ |
| C-16 | InputObjectでPBM Storeオブジェクトを受け取れること | E-02: L117-118 [parameter(ValueFromPipeline)] | ○ |
| C-17 | ComputerName, InstanceName, SqlInstanceプロパティが追加されること | E-02: L147-149 Add-Member でプロパティ追加 | ○ |
| C-18 | 存在しないポリシー名を指定した場合に空の結果が返ること | E-02: L141-143 Where-Object フィルタリング | ○ |
| C-19 | 存在しないカテゴリを指定した場合に空の結果が返ること | E-02: L137-139 Where-Object フィルタリング | ○ |
| C-20 | ポリシーが0件の場合の挙動 | E-02: L145 foreach ループが空配列を処理 | ○ |
| C-21 | 複数のPolicyパラメータを配列で指定した場合 | E-02: L115 [string[]]$Policy（配列対応） | ○ |

### Get-DbaPbmCondition関連（UT-PBM-022〜029）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | 全コンディションが取得できること | E-03: L112 $allconditions = $store.Conditions | ○ |
| C-23 | Conditionパラメータで特定コンディションをフィルタできること | E-03: L118-120 Where-Object Name -in $Condition | ○ |
| C-24 | IncludeSystemObjectでシステムコンディションが含まれること | E-03: L96 [switch]$IncludeSystemObject | ○ |
| C-25 | デフォルトでシステムコンディションが除外されること | E-03: L114-116 if (-not $IncludeSystemObject) フィルタ | ○ |
| C-26 | InputObjectでPBM Storeオブジェクトを受け取れること | E-03: L94-95 [Parameter(ValueFromPipeline)] | ○ |
| C-27 | PowerShell Coreで実行した場合にサポート外メッセージが表示されること | E-03: L104-107 PSVersionTable.PSEdition チェック | ○ |
| C-28 | 存在しないコンディション名を指定した場合に空の結果が返ること | E-03: L118-120 Where-Object フィルタリング | ○ |
| C-29 | コンディションが0件の場合の挙動 | E-03: L122 foreach ループが空配列を処理 | ○ |

### Get-DbaPbmCategory関連（UT-PBM-030〜037）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-30 | 全カテゴリが取得できること | E-04: L90 $all = $store.PolicyCategories | ○ |
| C-31 | Categoryパラメータで特定カテゴリをフィルタできること | E-04: L96-98 Where-Object Name -in $Category | ○ |
| C-32 | ExcludeSystemObjectでシステムカテゴリを除外できること | E-04: L78 [switch]$ExcludeSystemObject | ○ |
| C-33 | デフォルトでシステムカテゴリが含まれること | E-04: L92-94 if (-not $ExcludeSystemObject) でIsSystemObject除外（注：コードの論理が反転） | ○ |
| C-34 | InputObjectでPBM Storeオブジェクトを受け取れること | E-04: L76-77 [Parameter(ValueFromPipeline)] | ○ |
| C-35 | MandateDatabaseSubscriptionsプロパティが正しく取得できること | E-04: L105 Select-DefaultView に MandateDatabaseSubscriptions 含む | ○ |
| C-36 | 存在しないカテゴリ名を指定した場合に空の結果が返ること | E-04: L96-98 Where-Object フィルタリング | ○ |
| C-37 | カテゴリが0件の場合の挙動 | E-04: L100 foreach ループが空配列を処理 | ○ |

### Get-DbaPbmObjectSet関連（UT-PBM-038〜045）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | 全オブジェクトセットが取得できること | E-05: L101 $all = $store.ObjectSets | ○ |
| C-39 | ObjectSetパラメータで特定オブジェクトセットをフィルタできること | E-05: L107-109 Where-Object Name -in $ObjectSet | ○ |
| C-40 | IncludeSystemObjectでシステムオブジェクトセットが含まれること | E-05: L89 [switch]$IncludeSystemObject | ○ |
| C-41 | デフォルトでシステムオブジェクトセットが除外されること | E-05: L103-105 if (-not $IncludeSystemObject) フィルタ | ○ |
| C-42 | InputObjectでPBM Storeオブジェクトを受け取れること | E-05: L87-88 [Parameter(ValueFromPipeline)] | ○ |
| C-43 | Facet, TargetSetsプロパティが正しく取得できること | E-05: L116 Select-DefaultView に Facet, TargetSets 含む | ○ |
| C-44 | 存在しないオブジェクトセット名を指定した場合に空の結果が返ること | E-05: L107-109 Where-Object フィルタリング | ○ |
| C-45 | オブジェクトセットが0件の場合の挙動 | E-05: L111 foreach ループが空配列を処理 | ○ |

### Get-DbaPbmCategorySubscription関連（UT-PBM-046〜052）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-46 | 全カテゴリサブスクリプションが取得できること | E-06: L90 $all = $store.PolicycategorySubscriptions | ○ |
| C-47 | InputObjectでPBM Storeオブジェクトを受け取れること | E-06: L77-78 [Parameter(ValueFromPipeline)] | ○ |
| C-48 | ComputerName, InstanceName, SqlInstanceプロパティが追加されること | E-06: L94-96 Add-Member でプロパティ追加 | ○ |
| C-49 | PolicyCategory, Target, TargetTypeプロパティが正しく取得できること | E-06: L97 Select-DefaultView（除外のみ指定＝他は含む） | ○ |
| C-50 | サブスクリプションが存在しない場合に空の結果が返ること | E-06: L92 foreach ループが空配列を処理 | ○ |
| C-51 | SqlCredentialを使用して認証できること | E-06: L76 $SqlCredential パラメータ定義 | ○ |
| C-52 | EnableException指定時に例外がスローされること | E-06: L79 [switch]$EnableException パラメータ | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし - 全テストケースがソースコードから導出されており、根拠が明確

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全テストケースに明確なソースコード根拠があり、信頼度が高い

### 注意事項
- Get-DbaPbmCategoryのExcludeSystemObjectパラメータのデフォルト動作（L92-94）について、コードの論理が「-not $ExcludeSystemObject」で「IsSystemObject -ne $true」を除外しているため、実際の動作を確認することを推奨
- PowerShell Core非対応の関数（Get-DbaPbmStore, Get-DbaPbmCondition）のテストはWindows PowerShell環境で実施すること

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数のパラメータ定義（Mandatory、ValueFromPipeline等）がテストケースで網羅されているか
- [ ] システムオブジェクトの包含/除外ロジック（IncludeSystemObject/ExcludeSystemObject）の動作が正しくテストされているか
- [ ] パイプライン入力（InputObject）の動作がテストされているか
- [ ] PowerShell Core非対応関数のプラットフォームチェックがテストされているか
- [ ] MinimumVersion制約（SQL Server 2008以上）のテストが含まれているか
- [ ] Select-DefaultViewで表示されるプロパティが正しく検証されているか
