---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 110
  claims_with_evidence: 108
  claims_without_evidence: 2
confidence_derived: 0.98
---

# 根拠レポート：helpers.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.98**
  - 根拠あり：108 / 110、根拠なし：2
- 優先レビュー（高）
  1. **UT-HLP-061**：連番生成の動作は状態依存であり、テスト環境によって結果が異なる可能性
  2. **UT-HLP-076**：エラーフォーマットのテストはprocess.stdout.isTTYの状態に依存

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

- E-01: `src/helpers.coffee` 行6-7 - starts関数の定義
- E-02: `src/helpers.coffee` 行10-12 - ends関数の定義
- E-03: `src/helpers.coffee` 行15-22 - repeat関数の定義
- E-04: `src/helpers.coffee` 行25-26 - compact関数の定義
- E-05: `src/helpers.coffee` 行29-33 - count関数の定義
- E-06: `src/helpers.coffee` 行38-39 - merge関数の定義
- E-07: `src/helpers.coffee` 行42-45 - extend関数の定義
- E-08: `src/helpers.coffee` 行49-50 - flatten関数の定義
- E-09: `src/helpers.coffee` 行54-57 - del関数の定義
- E-10: `src/helpers.coffee` 行60-62 - some関数の定義
- E-11: `src/helpers.coffee` 行67-92 - invertLiterate関数の定義
- E-12: `src/helpers.coffee` 行96-109 - buildLocationData関数の定義（内部）
- E-13: `src/helpers.coffee` 行112-120 - extractAllCommentTokens関数の定義
- E-14: `src/helpers.coffee` 行126-127 - buildLocationHash関数の定義（内部）
- E-15: `src/helpers.coffee` 行131-145 - buildTokenDataDictionary関数の定義
- E-16: `src/helpers.coffee` 行150-166 - addDataToNode関数の定義
- E-17: `src/helpers.coffee` 行168-171 - attachCommentsToNode関数の定義
- E-18: `src/helpers.coffee` 行175-183 - locationDataToString関数の定義
- E-19: `src/helpers.coffee` 行187-190 - anonymousFileName関数の定義
- E-20: `src/helpers.coffee` 行193-201 - baseFileName関数の定義
- E-21: `src/helpers.coffee` 行204 - isCoffee関数の定義
- E-22: `src/helpers.coffee` 行207 - isLiterate関数の定義
- E-23: `src/helpers.coffee` 行213-223 - throwSyntaxError関数の定義
- E-24: `src/helpers.coffee` 行227-233 - updateSyntaxError関数の定義
- E-25: `src/helpers.coffee` 行235-266 - syntaxErrorToString関数の定義（内部）
- E-26: `src/helpers.coffee` 行268-274 - nameWhitespaceCharacter関数の定義
- E-27: `src/helpers.coffee` 行276-288 - parseNumber関数の定義
- E-28: `src/helpers.coffee` 行290 - isFunction関数の定義
- E-29: `src/helpers.coffee` 行291 - isNumber関数の定義
- E-30: `src/helpers.coffee` 行292 - isString関数の定義
- E-31: `src/helpers.coffee` 行293 - isBoolean関数の定義
- E-32: `src/helpers.coffee` 行294 - isPlainObject関数の定義
- E-33: `src/helpers.coffee` 行296-304 - unicodeCodePointToUnicodeEscapes関数の定義（内部）
- E-34: `src/helpers.coffee` 行307-319 - replaceUnicodeCodePointEscapes関数の定義
- E-35: `src/helpers.coffee` 行321-325 - UNICODE_CODE_POINT_ESCAPE正規表現の定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | starts関数が文字列の先頭マッチングを行う | E-01 | ○ |
| C-02 | starts関数が開始位置を指定できる | E-01 | ○ |
| C-03 | starts関数が不一致時にfalseを返す | E-01 | ○ |
| C-04 | starts関数が空文字列で動作する | E-01 | ○ |
| C-05 | starts関数がstart超過時にfalseを返す | E-01 | ○ |
| C-06 | ends関数が文字列の末尾マッチングを行う | E-02 | ○ |
| C-07 | ends関数がback引数を使用できる | E-02 | ○ |
| C-08 | ends関数が不一致時にfalseを返す | E-02 | ○ |
| C-09 | ends関数が空文字列で動作する | E-02 | ○ |
| C-10 | repeat関数が文字列を繰り返す | E-03 | ○ |
| C-11 | repeat関数がn=0で空文字列を返す | E-03 | ○ |
| C-12 | repeat関数がn=1で元の文字列を返す | E-03 | ○ |
| C-13 | repeat関数が空文字列を繰り返す | E-03 | ○ |
| C-14 | compact関数がfalsy値を除去する | E-04 | ○ |
| C-15 | compact関数が空配列で空配列を返す | E-04 | ○ |
| C-16 | compact関数が全falsy値で空配列を返す | E-04 | ○ |
| C-17 | compact関数が全truthy値をそのまま返す | E-04 | ○ |
| C-18 | count関数が出現回数をカウントする | E-05 | ○ |
| C-19 | count関数が不存在時に0を返す | E-05 | ○ |
| C-20 | count関数が空文字列でInfinityを返す | E-05 | ○ |
| C-21 | count関数が空文字列内検索で0を返す | E-05 | ○ |
| C-22 | merge関数がオブジェクトをマージする | E-06, E-07 | ○ |
| C-23 | merge関数がoverridesで上書きする | E-06, E-07 | ○ |
| C-24 | merge関数がfresh copyを返す | E-06 | ○ |
| C-25 | merge関数が空オブジェクト同士をマージする | E-06 | ○ |
| C-26 | extend関数がオブジェクトを拡張する | E-07 | ○ |
| C-27 | extend関数が元オブジェクトを変更する | E-07 | ○ |
| C-28 | extend関数が空propertiesで変更しない | E-07 | ○ |
| C-29 | flatten関数がネスト配列をフラット化する | E-08 | ○ |
| C-30 | flatten関数が空配列で空配列を返す | E-08 | ○ |
| C-31 | flatten関数がネストなし配列をそのまま返す | E-08 | ○ |
| C-32 | flatten関数が深いネストをフラット化する | E-08 | ○ |
| C-33 | del関数がキーを削除し値を返す | E-09 | ○ |
| C-34 | del関数が存在しないキーでundefinedを返す | E-09 | ○ |
| C-35 | del関数が空オブジェクトでundefinedを返す | E-09 | ○ |
| C-36 | some関数が条件を満たす場合にtrueを返す | E-10 | ○ |
| C-37 | some関数が条件を満たさない場合にfalseを返す | E-10 | ○ |
| C-38 | some関数が空配列でfalseを返す | E-10 | ○ |
| C-39 | invertLiterate関数がコードブロックを抽出する | E-11 | ○ |
| C-40 | invertLiterate関数が散文をコメント化する | E-11 | ○ |
| C-41 | invertLiterate関数が空行を保持する | E-11 | ○ |
| C-42 | invertLiterate関数がリスト項目をコメント化する | E-11 | ○ |
| C-43 | invertLiterate関数が空文字列で空文字列を返す | E-11 | ○ |
| C-44 | extractAllCommentTokens関数がコメントを抽出する | E-13 | ○ |
| C-45 | extractAllCommentTokens関数がコメントなしで空配列を返す | E-13 | ○ |
| C-46 | extractAllCommentTokens関数が空配列で空配列を返す | E-13 | ○ |
| C-47 | buildTokenDataDictionary関数が辞書を構築する | E-15 | ○ |
| C-48 | buildTokenDataDictionary関数がコメントをマージする | E-15 | ○ |
| C-49 | buildTokenDataDictionary関数がコメントなしで空辞書を返す | E-15 | ○ |
| C-50 | addDataToNode関数が位置データを追加する | E-12, E-16 | ○ |
| C-51 | addDataToNode関数がlast省略時にfirstを使用する | E-12, E-16 | ○ |
| C-52 | addDataToNode関数がforceUpdateLocationを尊重する | E-16 | ○ |
| C-53 | attachCommentsToNode関数がコメントを付与する | E-17 | ○ |
| C-54 | attachCommentsToNode関数が既存コメントに追加する | E-17 | ○ |
| C-55 | attachCommentsToNode関数がnullで何もしない | E-17 | ○ |
| C-56 | attachCommentsToNode関数が空配列で何もしない | E-17 | ○ |
| C-57 | locationDataToString関数が位置データを文字列化する | E-18 | ○ |
| C-58 | locationDataToString関数がトークン形式を処理する | E-18 | ○ |
| C-59 | locationDataToString関数が位置データなしでメッセージを返す | E-18 | ○ |
| C-60 | anonymousFileName関数が匿名ファイル名を生成する | E-19 | ○ |
| C-61 | anonymousFileName関数が連番を生成する | E-19 | △ |
| C-62 | baseFileName関数がファイル名を抽出する | E-20 | ○ |
| C-63 | baseFileName関数が拡張子を除去する | E-20 | ○ |
| C-64 | baseFileName関数が.coffee.mdを処理する | E-20 | ○ |
| C-65 | baseFileName関数がWindowsパスを処理する | E-20 | ○ |
| C-66 | baseFileName関数が拡張子なしファイルを処理する | E-20 | ○ |
| C-67 | isCoffee関数が.coffeeでtrueを返す | E-21 | ○ |
| C-68 | isCoffee関数が.litcoffeeでtrueを返す | E-21 | ○ |
| C-69 | isCoffee関数が.coffee.mdでtrueを返す | E-21 | ○ |
| C-70 | isCoffee関数が非CoffeeScriptでfalseを返す | E-21 | ○ |
| C-71 | isLiterate関数が.litcoffeeでtrueを返す | E-22 | ○ |
| C-72 | isLiterate関数が.coffee.mdでtrueを返す | E-22 | ○ |
| C-73 | isLiterate関数が.coffeeでfalseを返す | E-22 | ○ |
| C-74 | throwSyntaxError関数がSyntaxErrorをスローする | E-23 | ○ |
| C-75 | throwSyntaxError関数がエラーに位置情報を設定する | E-23 | ○ |
| C-76 | throwSyntaxError関数がtoStringをフォーマットする | E-23, E-25 | △ |
| C-77 | updateSyntaxError関数がコードとファイル名を追加する | E-24 | ○ |
| C-78 | updateSyntaxError関数が既存値を保持する | E-24 | ○ |
| C-79 | updateSyntaxError関数が非SyntaxErrorをそのまま返す | E-24 | ○ |
| C-80 | nameWhitespaceCharacter関数がスペースを名称化する | E-26 | ○ |
| C-81 | nameWhitespaceCharacter関数が改行を名称化する | E-26 | ○ |
| C-82 | nameWhitespaceCharacter関数がCRを名称化する | E-26 | ○ |
| C-83 | nameWhitespaceCharacter関数がタブを名称化する | E-26 | ○ |
| C-84 | nameWhitespaceCharacter関数がその他をそのまま返す | E-26 | ○ |
| C-85 | parseNumber関数が整数をパースする | E-27 | ○ |
| C-86 | parseNumber関数が小数をパースする | E-27 | ○ |
| C-87 | parseNumber関数が2進数をパースする | E-27 | ○ |
| C-88 | parseNumber関数が8進数をパースする | E-27 | ○ |
| C-89 | parseNumber関数が16進数をパースする | E-27 | ○ |
| C-90 | parseNumber関数がアンダースコア区切りをパースする | E-27 | ○ |
| C-91 | parseNumber関数がnullでNaNを返す | E-27 | ○ |
| C-92 | parseNumber関数がundefinedでNaNを返す | E-27 | ○ |
| C-93 | isFunction関数が関数でtrueを返す | E-28 | ○ |
| C-94 | isFunction関数が非関数でfalseを返す | E-28 | ○ |
| C-95 | isNumber関数が数値でtrueを返す | E-29 | ○ |
| C-96 | isNumber関数が非数値でfalseを返す | E-29 | ○ |
| C-97 | isString関数が文字列でtrueを返す | E-30 | ○ |
| C-98 | isString関数が非文字列でfalseを返す | E-30 | ○ |
| C-99 | isBoolean関数がtrue/falseでtrueを返す | E-31 | ○ |
| C-100 | isBoolean関数がBooleanオブジェクトでtrueを返す | E-31 | ○ |
| C-101 | isBoolean関数が非真偽値でfalseを返す | E-31 | ○ |
| C-102 | isPlainObject関数がプレーンオブジェクトでtrueを返す | E-32 | ○ |
| C-103 | isPlainObject関数が配列でfalseを返す | E-32 | ○ |
| C-104 | isPlainObject関数がnullでfalseを返す | E-32 | ○ |
| C-105 | isPlainObject関数が文字列でfalseを返す | E-32 | ○ |
| C-106 | isPlainObject関数が数値でfalseを返す | E-32 | ○ |
| C-107 | replaceUnicodeCodePointEscapes関数がUnicodeを置換する | E-33, E-34 | ○ |
| C-108 | replaceUnicodeCodePointEscapes関数がuフラグで置換しない | E-34 | ○ |
| C-109 | replaceUnicodeCodePointEscapes関数が不正コードポイントでエラーを呼ぶ | E-34 | ○ |
| C-110 | replaceUnicodeCodePointEscapes関数がエスケープを保持する | E-34, E-35 | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-61（UT-HLP-061）**: anonymousFileName関数の連番生成テストは、関数内部で状態を保持するクロージャを使用しているため、テスト環境の実行順序によって結果が変わる可能性がある
  - 候補：テスト前に状態をリセットする機構の追加 / モジュールの再読み込み / 特定のテスト順序の保証
- **C-76（UT-HLP-076）**: syntaxErrorToString関数のエラーフォーマットテストは、process.stdout.isTTYの状態に依存しており、色付けの有無が環境によって異なる
  - 候補：環境変数による制御 / モックの使用 / 色なし出力のみテスト

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - ほとんどのテストケースはソースコードから直接導出可能
- **1: 中リスク** - anonymousFileNameの連番テスト（状態依存）
- **1: 中リスク** - syntaxErrorToStringの色付けテスト（環境依存）
- **0: 低リスク** - その他の型チェック関数、ユーティリティ関数

## 6) レビュアーチェックリスト（最小）
- [ ] 各関数の正常系テストケースが網羅されているか確認
- [ ] 境界値テスト（空配列、空文字列、null/undefined）が適切に含まれているか確認
- [ ] 異常系テスト（不正な入力、存在しないキー）が含まれているか確認
- [ ] anonymousFileName関数のテストが状態に依存しない方法で実行可能か確認
- [ ] throwSyntaxError/updateSyntaxErrorのエラーハンドリングテストが適切か確認
- [ ] replaceUnicodeCodePointEscapes関数の境界値（0x10ffff）テストが適切か確認
- [ ] 内部関数（buildLocationData, buildLocationHash, unicodeCodePointToUnicodeEscapes）の間接的なテストが十分か確認
