---
generated_at: 2026-03-01 06:30:00
metrics:
  claims_total: 15
  claims_with_evidence: 12
  claims_without_evidence: 3
confidence_derived: 0.80
---

# 根拠レポート：babel-plugin-transform-strict-mode.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.80**
  - 根拠あり：12 / 15、根拠なし：3
- 優先レビュー（高）
  1. **UT-TSM-010**：複数directive時の挙動 - テストフィクスチャに該当ケースなし
  2. **UT-TSM-011**：'use strict'の位置による判定 - エッジケースの明示的テストなし
  3. **UT-TSM-014**：ES6モジュールとの互換性 - 明示的なテストケースなし

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

- E-01: `packages/babel-plugin-transform-strict-mode/src/index.ts` - プラグインの実装ソースコード
- E-02: `packages/babel-plugin-transform-strict-mode/package.json` - パッケージ定義（description含む）
- E-03: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/use-strict-add/input.js` - 基本追加テスト入力
- E-04: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/use-strict-add/output.js` - 基本追加テスト出力
- E-05: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/use-strict-exists/input.js` - 既存チェックテスト入力
- E-06: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/use-strict-exists/output.js` - 既存チェックテスト出力
- E-07: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/leading-comments/input.js` - コメント付きテスト入力
- E-08: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/leading-comments/output.js` - コメント付きテスト出力
- E-09: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/leading-comments-with-existing/input.js` - 既存+コメントテスト入力
- E-10: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/leading-comments-with-existing/output.js` - 既存+コメントテスト出力
- E-11: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/retain-lines-interpreter-directive/input.js` - shebangテスト入力
- E-12: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/retain-lines-interpreter-directive/output.js` - shebangテスト出力
- E-13: `packages/babel-plugin-transform-strict-mode/test/fixtures/strict-mode/retain-lines-interpreter-directive/options.json` - retainLinesオプション設定
- E-14: `packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/input.js` - 補助コメントテスト入力
- E-15: `packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/use-strict-add/output.js` - 補助コメントテスト出力
- E-16: `packages/babel-plugin-transform-strict-mode/test/fixtures/auxiliary-comment/options.json` - 補助コメントオプション設定

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-TSM-001) | プラグインが正しく初期化されること | E-01 (declare関数, api.assertVersion) | ○ |
| C-02 (UT-TSM-002) | プラグイン名が'transform-strict-mode'であること | E-01 (name: "transform-strict-mode") | ○ |
| C-03 (UT-TSM-003) | 'use strict'が存在しない場合に追加されること | E-01, E-03, E-04 | ○ |
| C-04 (UT-TSM-004) | 'use strict'が既に存在する場合は追加しないこと | E-01 (for...of loop + return), E-05, E-06 | ○ |
| C-05 (UT-TSM-005) | コメントがある場合でも'use strict'が正しく追加されること | E-07, E-08 | ○ |
| C-06 (UT-TSM-006) | コメントと既存の'use strict'がある場合は変更しないこと | E-09, E-10 | ○ |
| C-07 (UT-TSM-007) | retainLinesオプション有効時にインタープリタディレクティブと共存できること | E-11, E-12, E-13 | ○ |
| C-08 (UT-TSM-008) | auxiliaryCommentBeforeオプションが適用されること | E-14, E-15, E-16 | ○ |
| C-09 (UT-TSM-009) | directivesが空配列の場合に'use strict'が追加されること | E-01 (unshiftContainer), E-03, E-04 | ○ |
| C-10 (UT-TSM-010) | 複数のdirectiveがある場合に'use strict'のみをチェックすること | E-01 (for...of全directive走査) | △ |
| C-11 (UT-TSM-011) | 'use strict'が2番目以降にある場合も追加しないこと | E-01 (for...of loop ロジック) | △ |
| C-12 (UT-TSM-012) | 不正なBabelバージョンでエラーがスローされること | E-01 (api.assertVersion(7)) | ○ |
| C-13 (UT-TSM-013) | 空のプログラムに'use strict'が追加されること | E-01 (unshiftContainer ロジック) | ○ |
| C-14 (UT-TSM-014) | ES6モジュール構文と共存できること | **根拠なし** | △ |
| C-15 (UT-TSM-015) | unshiftContainerで先頭に挿入されること | E-01 (path.unshiftContainer) | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-TSM-010 (複数directive)**: ソースコードのロジックからは推測可能だが、明示的なテストフィクスチャが存在しない
  - 候補：`test/fixtures/strict-mode/multiple-directives/` を追加して検証
- **UT-TSM-011 ('use strict'位置)**: for...ofループで全directiveを走査するロジックは確認できるが、2番目以降の位置での明示的テストなし
  - 候補：`test/fixtures/strict-mode/use-strict-second-position/` を追加して検証
- **UT-TSM-014 (ES6モジュール互換性)**: ES6 import/export文との組み合わせテストが見つからない
  - 候補：他のBabelプラグインとの組み合わせで暗黙的にテストされている可能性 / `babel-preset-env`等での統合テストを確認

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: このプラグインは非常にシンプルな実装（約20行）で、明確な単一責務を持つ
- **0 (低リスク)**: 既存テストフィクスチャが主要なユースケースをカバーしている
- **1 (中リスク)**: 複数directiveや特殊なdirective順序のエッジケースは明示的テストがない

## 6) レビュアーチェックリスト（最小）
- [ ] ソースコード(E-01)の`for...of`ループが全directiveを正しく走査することを確認
- [ ] `unshiftContainer`メソッドが常に配列の先頭に挿入することを確認
- [ ] `api.assertVersion(7)`でBabel 7未満が適切にリジェクトされることを確認
- [ ] ES6モジュール構文との互換性について、統合テストまたは`babel-preset-env`のテストを確認
- [ ] `"use strict"`以外のdirective（`"use asm"`等）との共存が正しく動作することを確認
