---
generated_at: 2026-02-19 18:10:00
metrics:
  claims_total: 40
  claims_with_evidence: 38
  claims_without_evidence: 2
confidence_derived: 0.95
---

# 根拠レポート：register.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：38 / 40、根拠なし：2
- 優先レビュー（高）
  1. **UT-REG-014**：空文字列のファイル名の境界ケースは実際のコードで明示的に処理されていない
  2. **UT-REG-039, UT-REG-040**：null/undefinedパスの挙動はhelpers.isCoffeeの実装依存

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

- E-01: `src/register.coffee` (行1-74) - registerモジュールのソースコード
- E-02: `lib/coffeescript/register.js` (行1-100) - コンパイル後のJavaScript
- E-03: `src/register.coffee:19-28` - loadFile関数の定義
- E-04: `src/register.coffee:40-48` - findExtension関数の定義
- E-05: `src/register.coffee:50-55` - Module::load関数の定義
- E-06: `src/register.coffee:62-69` - child_process.forkのパッチ
- E-07: `src/register.coffee:72-73` - getRootModule関数の定義
- E-08: `src/register.coffee:9-12` - nodeSourceMapsSupportEnabled変数の定義
- E-09: `src/register.coffee:14-16` - patchStackTraceの呼び出し条件
- E-10: `src/register.coffee:32-34` - require.extensionsへの登録処理

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | loadFileがCoffeeScriptファイルをコンパイル・実行する | E-03 | ○ |
| C-02 | module.optionsがコンパイルオプションとして使用される | E-03 (行20) | ○ |
| C-03 | getRootModuleでルートモジュールのoptionsが取得される | E-03 (行20), E-07 | ○ |
| C-04 | cacheSourceMapsがtrueの場合inlineMapがtrueになる | E-03 (行24-25), E-09 | ○ |
| C-05 | nodeSourceMapsSupportEnabledがtrueの場合inlineMapがtrueになる | E-03 (行24-25), E-08 | ○ |
| C-06 | 存在しないファイルでCoffeeScript._compileFileがエラーをスロー | E-03 (行26) | ○ |
| C-07 | コンパイルエラー時にエラーがスローされる | E-03 (行26) | ○ |
| C-08 | findExtensionが単一拡張子を正しく検出する | E-04 | ○ |
| C-09 | findExtensionがマルチドット拡張子を検出する | E-04 (行45-47) | ○ |
| C-10 | findExtensionが最長マッチの拡張子を返す | E-04 (行44-47) | ○ |
| C-11 | findExtensionがdotfileを正しく処理する | E-04 (行42-43) | ○ |
| C-12 | 拡張子がない場合.jsが返される | E-04 (行48) | ○ |
| C-13 | 未登録の拡張子の場合.jsが返される | E-04 (行48) | ○ |
| C-14 | 空文字列のファイル名で.jsが返される | E-04 | △ |
| C-15 | Module::loadでfilenameプロパティが設定される | E-05 (行51) | ○ |
| C-16 | Module::loadでpathsプロパティが設定される | E-05 (行52) | ○ |
| C-17 | Module::loadでloadedがtrueになる | E-05 (行55) | ○ |
| C-18 | 適切な拡張子ハンドラが呼び出される | E-05 (行53-54) | ○ |
| C-19 | CoffeeScriptファイルがcoffeeバイナリ経由でforkされる | E-06 (行63-68) | ○ |
| C-20 | JSファイルは通常のforkが実行される | E-06 (行63, 69) | ○ |
| C-21 | argsが配列でない場合optionsとして扱われる | E-06 (行64-66) | ○ |
| C-22 | argsがundefinedの場合空配列として処理される | E-06 (行65-66) | ○ |
| C-23 | .litcoffee拡張子がforkで処理される | E-06 (行63) | ○ |
| C-24 | .coffee.md拡張子がforkで処理される | E-06 (行63) | ○ |
| C-25 | getRootModuleでparentがない場合自身が返される | E-07 (行73) | ○ |
| C-26 | getRootModuleで1階層の親がある場合親が返される | E-07 (行72-73) | ○ |
| C-27 | getRootModuleで複数階層の親がある場合最上位が返される | E-07 (行72-73) | ○ |
| C-28 | parent=undefinedで自身が返される | E-07 (行72) | ○ |
| C-29 | execArgvから--enable-source-mapsが検出される | E-08 (行10) | ○ |
| C-30 | NODE_OPTIONSから--enable-source-mapsが検出される | E-08 (行11) | ○ |
| C-31 | ソースマップ無効時falseになる | E-08 | ○ |
| C-32 | Error.prepareStackTrace未定義時にパッチが適用される | E-09 (行14-16) | ○ |
| C-33 | Error.prepareStackTrace定義済みでパッチが適用されない | E-09 (行14) | ○ |
| C-34 | FILE_EXTENSIONSの全拡張子が登録される | E-10 (行33-34) | ○ |
| C-35 | .coffee拡張子が登録される | E-10 | ○ |
| C-36 | .litcoffee拡張子が登録される | E-10 | ○ |
| C-37 | nullモジュールでエラーがスローされる | E-03 (行20) | ○ |
| C-38 | nullファイル名でエラーがスローされる | E-03 (行26) | ○ |
| C-39 | null pathが元のforkに渡される | E-06 | △ |
| C-40 | undefined pathが元のforkに渡される | E-06 | △ |

## 4) 不足情報（Unknown / Missing）
- **C-14（空文字列のファイル名）**: findExtension関数は空文字列を明示的に処理するコードがなく、path.basenameの挙動に依存。実際の動作はNode.jsのpath.basenameの実装による
  - 候補：Node.js path モジュールのドキュメント / 実際のテスト実行
- **C-39, C-40（null/undefined path）**: helpers.isCoffeeがnull/undefinedをどう処理するかはhelpersモジュールの実装依存
  - 候補：`src/helpers.coffee`のisCoffee関数の実装確認

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 大部分のテストケースはソースコードから直接導出可能
- **1: 中リスク** - findExtensionの境界値テスト（C-14）はNode.js標準ライブラリの挙動に依存
- **0: 低リスク** - child_process.forkのパッチは明確なコードパスがあり、テストケースは信頼性が高い

## 6) レビュアーチェックリスト（最小）
- [ ] loadFile関数のテストケース（UT-REG-001〜007）が実際のコンパイルフローをカバーしているか確認
- [ ] findExtensionのマルチドット拡張子処理（UT-REG-008〜014）がCoffeeScript.FILE_EXTENSIONSと整合しているか確認
- [ ] child_process.forkのパッチ（UT-REG-019〜024）がhelpers.isCoffeeの仕様と整合しているか確認
- [ ] getRootModuleの再帰処理（UT-REG-025〜028）が深い階層でも正しく動作するか確認
- [ ] nodeSourceMapsSupportEnabledの検出ロジック（UT-REG-029〜031）がNode.jsのバージョン間で互換性があるか確認
