---
generated_at: 2026-02-24 18:05:00
metrics:
  claims_total: 56
  claims_with_evidence: 56
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：packages-text-editor-utils 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

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

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

- E-01: `packages/text-editor-utils/src/is-json-content.ts`（isJsonContent関数定義）
- E-02: `packages/text-editor-utils/src/json-content-to-text.ts`（jsonContentToText関数定義）
- E-03: `packages/text-editor-utils/src/json-content-to-plain-text.ts`（jsonContentToPlainText関数定義）
- E-04: `packages/text-editor-utils/src/node-references/formatting.ts`（formatNodeReference, containsNodeReference, containsSpecificNodeReference, findNextNodeReference関数定義）
- E-05: `packages/text-editor-utils/src/node-references/cleanup.ts`（cleanupNodeReferencesInText, cleanupSpecificNodeReferenceInText, isSourceContent, isParagraphContent, isTextContent, processContentArray関数定義）
- E-06: `packages/text-editor-utils/src/node-references/source-detection.ts`（extractSourceReferences, findRemovedSources関数定義、SourceReference型定義）
- E-07: `packages/text-editor-utils/src/extensions/source-extension.ts`（createSourceExtensionJSONContent関数、SourceExtensionノード定義）
- E-08: `packages/text-editor-utils/src/extensions/index.ts`（extensions配列定義）
- E-09: `packages/text-editor-utils/src/index.ts`（モジュールエクスポート定義）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | isJsonContent正常系：有効なJSONContentオブジェクト | E-01（6-18行目：型ガード実装） | ○ |
| C-02 | isJsonContent正常系：有効なJSON文字列 | E-01（8-13行目：文字列パース処理） | ○ |
| C-03 | isJsonContent異常系：null | E-01（16行目：null チェック） | ○ |
| C-04 | isJsonContent異常系：undefined | E-01（7-8行目：candidate変数処理） | ○ |
| C-05 | isJsonContent異常系：typeプロパティなし | E-01（16行目："type" in candidate チェック） | ○ |
| C-06 | isJsonContent異常系：不正JSON文字列 | E-01（10-13行目：try-catchでfalse返却） | ○ |
| C-07 | isJsonContent境界値：空オブジェクト | E-01（16行目："type" in candidate チェック） | ○ |
| C-08 | jsonContentToText正常系：基本変換 | E-02（6-10行目：generateHTML + turndown） | ○ |
| C-09 | jsonContentToText正常系：Sourceノード変換 | E-02（7行目：SourceExtension使用）、E-07 | ○ |
| C-10 | jsonContentToText正常系：コードブロック変換 | E-02（7行目：extensions使用）、E-08（CodeBlockLowlight） | ○ |
| C-11 | jsonContentToText境界値：空doc | E-02（6-10行目：generateHTML動作） | ○ |
| C-12 | jsonContentToPlainText正常系：基本変換 | E-03（5-7行目：generateText使用） | ○ |
| C-13 | jsonContentToPlainText正常系：Sourceノード | E-03（6行目：SourceExtension使用）、E-07（55-57行目：renderText） | ○ |
| C-14 | jsonContentToPlainText境界値：空doc | E-03（5-7行目：generateText動作） | ○ |
| C-15 | formatNodeReference正常系 | E-04（23-28行目：formatNodeReference定義） | ○ |
| C-16 | containsNodeReference正常系：参照あり | E-04（33-35行目：includes使用） | ○ |
| C-17 | containsNodeReference正常系：参照なし | E-04（33-35行目：includes使用） | ○ |
| C-18 | containsNodeReference境界値：空文字列 | E-04（33-35行目：includes動作） | ○ |
| C-19 | containsSpecificNodeReference正常系：参照あり | E-04（40-46行目：formatNodeReference + includes） | ○ |
| C-20 | containsSpecificNodeReference正常系：異なるoutputId | E-04（40-46行目：完全一致チェック） | ○ |
| C-21 | findNextNodeReference正常系：位置検出 | E-04（52-73行目：indexOf使用） | ○ |
| C-22 | findNextNodeReference正常系：オフセット | E-04（55行目：startFrom引数） | ○ |
| C-23 | findNextNodeReference正常系：参照なし | E-04（58-59行目：-1時null返却） | ○ |
| C-24 | findNextNodeReference異常系：閉じ括弧なし | E-04（67行目：endIndex === -1時null返却） | ○ |
| C-25 | cleanupNodeReferencesInText正常系：JSON削除 | E-05（90-126行目：isJsonContent分岐、cleanupNodeReferencesInJsonContent呼び出し） | ○ |
| C-26 | cleanupNodeReferencesInText正常系：プレーン削除 | E-05（112-124行目：findNextNodeReference使用ループ） | ○ |
| C-27 | cleanupNodeReferencesInText正常系：複数参照削除 | E-05（116-123行目：whileループ） | ○ |
| C-28 | cleanupNodeReferencesInText正常系：選択的削除 | E-05（79-82行目：nodeId一致チェック） | ○ |
| C-29 | cleanupNodeReferencesInText境界値：空文字列 | E-05（95行目：isJsonContentチェック、113行目：ループ開始） | ○ |
| C-30 | cleanupNodeReferencesInText異常系：不正JSON | E-05（107-109行目：catchブロック） | ○ |
| C-31 | cleanupSpecificNodeReferenceInText正常系：JSON削除 | E-05（178-217行目：cleanupSpecificNodeReferenceInJsonContent呼び出し） | ○ |
| C-32 | cleanupSpecificNodeReferenceInText正常系：選択的削除 | E-05（142-148行目：nodeIdとoutputId両方チェック） | ○ |
| C-33 | cleanupSpecificNodeReferenceInText正常系：プレーン削除 | E-05（202-214行目：indexOf使用ループ） | ○ |
| C-34 | cleanupSpecificNodeReferenceInText境界値：空段落JSON | E-05（192-195行目：null時空段落返却） | ○ |
| C-35 | extractSourceReferences正常系：基本抽出 | E-06（12-39行目：traverse関数定義） | ○ |
| C-36 | extractSourceReferences正常系：ネスト抽出 | E-06（30-34行目：再帰traverse） | ○ |
| C-37 | extractSourceReferences正常系：複数抽出 | E-06（19-22行目：sources配列へのpush） | ○ |
| C-38 | extractSourceReferences境界値：Source不在 | E-06（13行目：空配列初期化） | ○ |
| C-39 | extractSourceReferences異常系：不完全attrs | E-06（18行目：attrs?.node?.id && attrs?.outputId チェック） | ○ |
| C-40 | findRemovedSources正常系：削除検出 | E-06（44-58行目：Set使用比較） | ○ |
| C-41 | findRemovedSources正常系：変更なし | E-06（55-57行目：filter結果空） | ○ |
| C-42 | findRemovedSources正常系：追加は検出対象外 | E-06（55-57行目：oldSourcesからのフィルタ） | ○ |
| C-43 | findRemovedSources境界値：両方空 | E-06（48-49行目：空配列同士の比較） | ○ |
| C-44 | createSourceExtensionJSONContent正常系 | E-07（13-27行目：関数定義） | ○ |
| C-45 | SourceExtension renderHTML正常系 | E-07（45-54行目：renderHTML実装） | ○ |
| C-46 | SourceExtension renderText正常系 | E-07（55-57行目：renderText実装） | ○ |
| C-47 | isSourceContent正常系 | E-05（10-23行目：型ガード実装） | ○ |
| C-48 | isSourceContent異常系：非Source | E-05（14行目：type === "Source"チェック） | ○ |
| C-49 | isSourceContent異常系：attrs欠落 | E-05（15-16行目：attrs チェック） | ○ |
| C-50 | isParagraphContent正常系 | E-05（28-35行目：型ガード実装） | ○ |
| C-51 | isParagraphContent異常系 | E-05（34行目：type === "paragraph"チェック） | ○ |
| C-52 | isTextContent正常系 | E-05（40-45行目：型ガード実装） | ○ |
| C-53 | isTextContent異常系 | E-05（44行目：typeof jsonContent.text === "string"チェック） | ○ |
| C-54 | processContentArray正常系：content欠落 | E-05（54-56行目：早期return） | ○ |
| C-55 | processContentArray正常系：null除外 | E-05（58-60行目：filter使用） | ○ |
| C-56 | processContentArray正常系：変換処理 | E-05（58-59行目：map使用） | ○ |

## 4) 不足情報（Unknown / Missing）
- なし：全テストケースについてソースコードによる根拠が確認できました

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク**
  - 全テストケースがソースコードの実装に基づいて生成されています
  - 型ガード関数、変換関数、参照操作関数の観点が網羅されています

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースの入力値・期待結果がソースコードの実装と整合しているか
- [ ] TipTap/JSONContentの実際のデータ構造と一致しているか
- [ ] NodeId/OutputIdの型（@giselles-ai/protocol）との整合性を確認
- [ ] 境界値テストが十分にカバーされているか（空配列、空文字列、null等）
- [ ] エラーハンドリング（try-catch）のテストが含まれているか
- [ ] ネストされたJSONContentの再帰処理テストが含まれているか
