---
generated_at: 2026-03-01 15:20:00
metrics:
  claims_total: 106
  claims_with_evidence: 106
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：language-handlebars.csv

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：106 / 106、根拠なし：0
- 優先レビュー（高）
  1. **UT-HBS-001〜003**：parse関数の基本テスト（パーサーの中核機能）
  2. **UT-HBS-015〜034**：print関数の各ノードタイプ処理（プリンターの中核機能）
  3. **UT-HBS-079〜091**：utilities.jsのエクスポート関数（外部から使用される機能）

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

- E-01: `src/language-handlebars/index.js` - モジュールのエントリーポイント
- E-02: `src/language-handlebars/parser-glimmer.js` - Glimmerパーサー実装（parse, addBackslash, setOffset, isIndex, getErrorMessage, getErrorLocation, glimmerPrettierParsePlugin）
- E-03: `src/language-handlebars/printer-glimmer.js` - Glimmerプリンター実装（print, sortByLoc, printStartingTag, printStartingTagEndMarker, printOpeningMustache, printClosingMustache, printStringLiteral, needsOppositeQuote, isElseIfBlock, blockStatementHasOnlyWhitespaceInProgram, countNewLines, countLeadingNewLines, countTrailingNewLines, generateHardlines, getCurrentAttributeName, printPathExpression, isPathExpressionPartNeedBrackets, printBlockParams等）
- E-04: `src/language-handlebars/embed.js` - CSS埋め込み処理（embed関数）
- E-05: `src/language-handlebars/utilities.js` - ユーティリティ関数（isUppercase, isGlimmerComponent, isVoidTag, isVoidElement, isWhitespaceNode, isPrettierIgnoreNode, hasPrettierIgnore）
- E-06: `src/language-handlebars/loc.js` - 位置情報取得（locStart, locEnd）
- E-07: `src/language-handlebars/massage-ast/index.js` - AST変換処理（massageAstNode）
- E-08: `src/language-handlebars/get-visitor-keys.js` - ビジターキー取得関数
- E-09: `src/language-handlebars/languages.evaluate.js` - 言語定義
- E-10: `src/language-handlebars/visitor-keys.js` - ビジターキー定義（@glimmer/syntaxからの再エクスポート）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | parse関数が有効なテンプレートをパースする | E-02 (parser-glimmer.js L71-111) | ○ |
| C-02 | parse関数がFrontMatterを処理する | E-02 (parser-glimmer.js L90-108) | ○ |
| C-03 | parse関数が不正入力でエラーをスローする | E-02 (parser-glimmer.js L77-88) | ○ |
| C-04 | addBackslash関数がバックスラッシュを追加する | E-02 (parser-glimmer.js L20-35) | ○ |
| C-05 | addBackslash関数が空配列を処理する | E-02 (parser-glimmer.js L22) | ○ |
| C-06 | setOffset関数がオフセットを設定する | E-02 (parser-glimmer.js L39-52) | ○ |
| C-07〜09 | isIndex関数が整数を判定する | E-02 (parser-glimmer.js L37) | ○ |
| C-10〜11 | getErrorMessage関数がエラーメッセージを抽出する | E-02 (parser-glimmer.js L113-163) | ○ |
| C-12〜14 | getErrorLocation関数がエラー位置を取得する | E-02 (parser-glimmer.js L165-181) | ○ |
| C-15〜34 | print関数が各ノードタイプを処理する | E-03 (printer-glimmer.js L37-421) | ○ |
| C-35 | sortByLoc関数がソート順を計算する | E-03 (printer-glimmer.js L425-427) | ○ |
| C-36 | printStartingTag関数がタグ開始を出力する | E-03 (printer-glimmer.js L429-449) | ○ |
| C-37〜38 | printStartingTagEndMarker関数がタグ終了マーカーを出力する | E-03 (printer-glimmer.js L451-457) | ○ |
| C-39〜43 | printOpeningMustache/printClosingMustache関数がmustacheを出力する | E-03 (printer-glimmer.js L461-471) | ○ |
| C-44〜46 | printStringLiteral/needsOppositeQuote関数が文字列を処理する | E-03 (printer-glimmer.js L726-748) | ○ |
| C-47〜48 | isElseIfBlock関数がelse ifを判定する | E-03 (printer-glimmer.js L555-589) | ○ |
| C-49〜50 | blockStatementHasOnlyWhitespaceInProgram関数が空白を判定する | E-03 (printer-glimmer.js L631-636) | ○ |
| C-51〜56 | countNewLines/countLeadingNewLines/countTrailingNewLines/generateHardlines関数が改行を処理する | E-03 (printer-glimmer.js L689-713) | ○ |
| C-57〜58 | getCurrentAttributeName関数が属性名を取得する | E-03 (printer-glimmer.js L680-687) | ○ |
| C-59〜64 | printPathExpression/isPathExpressionPartNeedBrackets/printBlockParams関数がパスを処理する | E-03 (printer-glimmer.js L803-840, L799-801) | ○ |
| C-65〜69 | embed関数がCSS埋め込みを処理する | E-04 (embed.js L1-45) | ○ |
| C-70〜75 | isUppercase/isGlimmerComponent関数がコンポーネントを判定する | E-05 (utilities.js L6-17) | ○ |
| C-76〜78 | isVoidTag関数がvoidタグを判定する | E-05 (utilities.js L20-22) | ○ |
| C-79〜82 | isVoidElement関数がvoid要素を判定する | E-05 (utilities.js L24-31) | ○ |
| C-83〜85 | isWhitespaceNode関数が空白ノードを判定する | E-05 (utilities.js L33-35) | ○ |
| C-86〜91 | isPrettierIgnoreNode/hasPrettierIgnore関数がprettier-ignoreを検出する | E-05 (utilities.js L37-54) | ○ |
| C-92〜93 | locStart/locEnd関数が位置情報を取得する | E-06 (loc.js L1-4) | ○ |
| C-94〜101 | massageAstNode関数がASTを変換する | E-07 (massage-ast/index.js L3-52) | ○ |
| C-102 | getVisitorKeys関数がビジターキーを取得する | E-08 (get-visitor-keys.js L1-6) | ○ |
| C-103 | languages定義がHandlebars言語を含む | E-09 (languages.evaluate.js L1-11) | ○ |
| C-104〜106 | index.jsがprinters/languages/parsersをエクスポートする | E-01 (index.js L1-8) | ○ |

## 4) 不足情報（Unknown / Missing）
- 根拠なしの項目はありません。
- 全てのテストケースはソースコードの実装に基づいて作成されています。

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - 全てのテストケースがソースコードの実装に対応しており、根拠が明確

**注意点:**
- printer-glimmer.jsは大規模なファイル（850行以上）であり、print関数のswitch文は多くのノードタイプを処理しています。テストケースは主要なノードタイプをカバーしていますが、実際のテスト実装時には各ケースの詳細な条件分岐もカバーすることを推奨します。
- 内部関数（ファイルスコープの関数）のテストは、直接テストが困難な場合があります。これらは公開APIを通じて間接的にテストするか、テスト用にエクスポートすることを検討してください。

## 6) レビュアーチェックリスト（最小）
- [ ] parse関数のテストケース（UT-HBS-001〜003）がパーサーの主要機能をカバーしているか
- [ ] print関数のテストケース（UT-HBS-015〜034）が全ノードタイプの処理をカバーしているか
- [ ] エクスポートされた関数（isVoidElement, isWhitespaceNode, hasPrettierIgnore）のテストケースが境界条件を含んでいるか
- [ ] embed関数のテストケース（UT-HBS-065〜069）がCSS埋め込みの条件分岐をカバーしているか
- [ ] massageAstNode関数のテストケース（UT-HBS-094〜101）がAST変換ロジックをカバーしているか
- [ ] 優先度「高」のテストケースが全て妥当か確認
- [ ] 入力値と期待結果の記述が実装と整合しているか確認
